JDK 14 RFR of JDK-8229997: Apply java.io.Serial annotations in java.base
Joe Darcy
joe.darcy at oracle.com
Wed Aug 28 01:28:05 UTC 2019
Hello,
Recent work for JDK-8202385: "Annotation to mark serial-related fields
and methods" added the java.io.Serial annotation type to the platform.
The intention of this new annotation type is to allow
serialization-related fields and methods to be marked as documentation
and to allow stricter compile-time checking, analogous to the checking
done for @Override. Implementing those stricter serialization-related
checks will be done under JDK-8202056.
Please review the application of java.io.Serial to types in the base
module other than security types:
JDK-8229997: Apply java.io.Serial annotations in java.base
http://cr.openjdk.java.net/~darcy/8229997.0/
(Security-related types in the base module are being handled under
JDK-8229999.)
As a reminder, the 5 serialization-related methods and 2 fields are:
* private void writeObject(java.io.ObjectOutputStream stream)
throws IOException
* private void readObject(java.io.ObjectInputStream stream) throws
IOException, ClassNotFoundException
* private void readObjectNoData() throws ObjectStreamException
* ANY-ACCESS-MODIFIER Object writeReplace() throws
ObjectStreamException
* ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException
* private static final ObjectStreamField[] serialPersistentFields
* private static final long serialVersionUID
Due to the separate source code management policies for
java.util.concurrent, I did not include that package in this exercise.
Likewise, applying the annotation to some of the time-zone related files
caused build failures so I excluded those types as well.
Thanks,
-Joe
More information about the core-libs-dev
mailing list