[11u]: RFR 8227650: EnumSet.class serialization broken in JDK 9+

Peter Levart peter.levart at gmail.com
Wed Jul 17 09:23:21 UTC 2019


Hi Stuart,

On 7/16/19 8:09 PM, Stuart Marks wrote:
>
> doing something like the following in order to avoid changing 
> serialized-form.html:
>
> private static final long serialVersionUID; static { serialVersionUID 
> = 1009687484059888093L; }
>
> Indeed, this avoids changing serialized-form.html. However, there's 
> still a problem. I ran JCK 11 with this patch applied to my JDK 11 
> build, and the result is that the api/serializabletypes test failed. 
> So, cheating or sleazy hack, this approach doesn't really work. 
> Although this technique avoids changing the /text/ of the 
> specification output, it really is changing the specification, as far 
> as the JCK is concerned.
>

It would be interesting to know what the api/serializabletypes JCK 11 
test does. Why does it fail when svuid field is introduced?

Otherwise, your "sleazy hacks" to fabricate the correct (as of JDK 8) 
computed svuid seem OK. The only gripe is that should any further 
changes to EnumSet be necessary in JDK 11 u, they would have to be 
carefully constructed to not break the serialization again. At least 
there is a test for that now :-)

Regards, Peter



More information about the jdk-updates-dev mailing list