<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