-
Bug
-
Resolution: Fixed
-
P3
-
1.4.0
-
None
-
beta
-
generic
-
generic
-
Verified
The version of java.io.ObjectStreamField introduced as part of the new
serialization code integrated in merlin build b45 does not intern() type
strings. While this does not cause deserialization problems, it can lead
to a change in binary format for object streams which contain the same type
string written multiple times. Previously, since ObjectStreamField intern()'ed
the type string before storing it, multiple writes of equivalent type strings
would result in back-references to the first occurrence of the type string
in the stream; however, if the type strings are not intern()'ed, then each
instance is written as a full string to the stream, resulting in space
wastage and a change in binary format.
ObjectStreamField should be modified so that it calls intern() for
type signatures.
serialization code integrated in merlin build b45 does not intern() type
strings. While this does not cause deserialization problems, it can lead
to a change in binary format for object streams which contain the same type
string written multiple times. Previously, since ObjectStreamField intern()'ed
the type string before storing it, multiple writes of equivalent type strings
would result in back-references to the first occurrence of the type string
in the stream; however, if the type strings are not intern()'ed, then each
instance is written as a full string to the stream, resulting in space
wastage and a change in binary format.
ObjectStreamField should be modified so that it calls intern() for
type signatures.