<AWT Dev> JDK 14 RFR of JDK-8231334: Suppress warnings on non-serializable instance fields in client libs serializable classes
Joe Darcy
joe.darcy at oracle.com
Sat Sep 21 19:48:18 UTC 2019
Hello,
Quick background, I'm working on expanding the compile-time
serialization checks of javac's -Xlint:serial option. Ahead of that work
going back, I'm analyzing the JDK sources and plan to pre-suppress the
coming-soon new warnings, fixing or at least filing follow-up bugs for
any problems that are found. Corresponding suppression bugs are already
out for review against core libs (JDK-8231202) and security libs
(JDK-8231262).
The new check in development is if a serializable class has an instance
field that is not declared to be a serializable type. This might
actually be fine in practice, such as if the field in question always
points to a serializable object at runtime, but it is arguably worth
noting as an item of potential concern. This check is skipped if the
class using the serialPersistentFields mechanism.
For the client libs, the webrev with the new @SuppressedWarnings
annotations is:
JDK-8231334: Suppress warnings on non-serializable instance fields
in client libs serializable classes
http://cr.openjdk.java.net/~darcy/8231334.0/
The changes are mostly in awt, but also some in beans, a few in
printing, and one in sound.
As discussed with Phil off-line, the new checks also found an existing
known issue, the auxiliary class java.awt.ImageMediaEntry declared in
MediaTracker.java is not serializable/deserializable in practice
(JDK-4397681).
Thanks,
-Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/awt-dev/attachments/20190921/bc3288d5/attachment.html>
More information about the awt-dev
mailing list