JDK 12 RFR of JDK-8207751: Remove misleading serialVersionUID from JulienFields.Field

joe darcy joe.darcy at oracle.com
Tue Jul 17 23:19:26 UTC 2018


Hello,

The nested enum java.time.temporal.JulianFields.Field declare a 
serialVersionUID field. Per the serialization spec, a serialVersionUID 
field in an enum is ignored.

"The process by which enum constants are serialized cannot be 
customized: any class-specific writeObject, readObject, 
readObjectNoData, writeReplace, and readResolve methods defined by enum 
types are ignored during serialization and deserialization. Similarly, 
any serialPersistentFields or serialVersionUID field declarations are 
also ignored--all enum types have a fixed serialVersionUID of 0L. 
Documenting serializable fields and data for enum types is unnecessary, 
since there is no variation in the type of data sent."

https://docs.oracle.com/javase/10/docs/specs/serialization/serial-arch.html#serialization-of-enum-constants

Therefore, this misleading field should be deleted; please review the 
patch below which does this.

Thanks,

-Joe

--- a/src/java.base/share/classes/java/time/temporal/JulianFields.java 
Tue Jul 17 17:14:03 2018 -0400
+++ b/src/java.base/share/classes/java/time/temporal/JulianFields.java 
Tue Jul 17 16:07:22 2018 -0700
@@ -222,8 +222,6 @@
          MODIFIED_JULIAN_DAY("ModifiedJulianDay", DAYS, FOREVER, 40587L),
          RATA_DIE("RataDie", DAYS, FOREVER, 719163L);

-        private static final long serialVersionUID = -7501623920830201812L;
-
          private final transient String name;
          private final transient TemporalUnit baseUnit;
          private final transient TemporalUnit rangeUnit;



More information about the core-libs-dev mailing list