The changes to RemoteException introduced by 4209652 and revised by 4385429 have still left serialization from merlin to prior releases in an undesirable state. Specifically, because the current merlin code appends the cause.toString to the message prior to calling the superclass constructor, the actual string in the serialized form includes this appendage. When the exception is deserialized in a prior release, the getMessage() method in that prior release will again append the nested exception, causing duplication in the value of the message and the output of toString and printStackTrace. So, an exception in merlin that contains a message of the form
foo; java.lang.Exception: bar
deserializes in prior releases with a message of the form
foo; java.lang.Exception: bar; nested exception is:
java.lang.Exception: bar
In addition, the javadoc for the RemoteException(String, Throwable) constructor was left to say that the instance is constructed with "the specified detail message", which is not what the current implementation actually does.
foo; java.lang.Exception: bar
deserializes in prior releases with a message of the form
foo; java.lang.Exception: bar; nested exception is:
java.lang.Exception: bar
In addition, the javadoc for the RemoteException(String, Throwable) constructor was left to say that the instance is constructed with "the specified detail message", which is not what the current implementation actually does.
- duplicates
-
JDK-4399907 JCK13 api/java_rmi/RemoteException/serila/index.html#InputTests,b44,x86,Sparc
-
- Closed
-