-
Bug
-
Resolution: Fixed
-
P3
-
9, 10, 11, 12, 13, 14
-
b30
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8227841 | 14 | Peter Levart | P3 | Resolved | Fixed | b07 |
JDK-8228325 | 13.0.2 | Peter Levart | P3 | Resolved | Fixed | b01 |
JDK-8228109 | 13.0.1 | Peter Levart | P3 | Resolved | Fixed | b02 |
JDK-8228350 | 11.0.6-oracle | Robert Mckenna | P3 | Resolved | Fixed | b01 |
JDK-8227650 | 11.0.6 | Stuart Marks | P3 | Resolved | Fixed | b01 |
http://hg.openjdk.java.net/jdk/jdk/rev/d0e8542ef650
http://hg.openjdk.java.net/jdk/jdk/rev/a7e13065a7a0
It is interesting to note that before those two changes were made, there was a chance to fix the problem reported by newly added serial lint warnings. Unfortunately they were just silenced:
http://hg.openjdk.java.net/jdk/jdk/rev/501d8479f798
+@SuppressWarnings("serial") // No serialVersionUID due to usage of
+ // serial proxy pattern
It is true that serialization of instances of Serializable classes is not broken by changes to them when they implement serial proxy pattern (i.e. writeReplace() method) even if they don't itself declare a private static final long serialVersionUID field, but this is not true of Class objects representing those Serializable classes. It is even more controversial that serialization of Class objects representing non-Serializable classes is never broken, because their serialVersionUID value is always interpreted as 0 (which is understandable as they don't have a habit of declaring serialVersionUID fields).
Both of the above breaking changes were made post JDK 8 release, so deserialization of JDK 8 (and older) streams is affected in all JDK 9 + releases or vice versa.
- backported by
-
JDK-8227650 EnumSet.class serialization broken in JDK 9+
- Resolved
-
JDK-8227841 EnumSet.class serialization broken in JDK 9+
- Resolved
-
JDK-8228109 EnumSet.class serialization broken in JDK 9+
- Resolved
-
JDK-8228325 EnumSet.class serialization broken in JDK 9+
- Resolved
-
JDK-8228350 EnumSet.class serialization broken in JDK 9+
- Resolved
- csr for
-
JDK-8227432 Add serialVersionUID to EnumSet class
- Closed
- relates to
-
JDK-8035452 Fix serial lint warnings in core libs
- Resolved
-
JDK-8192935 Fix EnumSet's SerializationProxy javadoc
- Resolved
-
JDK-8148044 Remove Enum[0] constants from EnumSet and EnumMap
- Resolved
-
JDK-8065937 need way to handle multiple serialVersionUIDs for one class
- Open