JDK 14 RFR of JDK-8231546: Suppress warnings on non-serializable instance fields in java.prefs module
Roger Riggs
Roger.Riggs at oracle.com
Thu Sep 26 18:27:27 UTC 2019
Looks fine, Joe
On 9/26/19 1:51 PM, Joe Darcy wrote:
> Hello,
>
> Another part of the cleanup of library serialization usage ahead of
> augmented javac -Xlint warnings (JDK-8160675), the non-serializable
> instance fields of serializable types in the java.prefs module should
> have their serial warnings suppressed. The analogous issue in core
> libs is JDK-8231202.
>
> For the type in question, while NodeChangeEvent is typed as
> serializable, both its readObject and writeObject methods are written
> to unconditionally throw exceptions, so it is not serializable in
> practice. The class does define a serialVersionUID, so the one suspect
> field can be marked as "transient" without causing an effective change
> in serialization support.
>
> Patch below.
>
> Thanks,
>
> -Joe
>
> diff -r e23e560afbcb
> src/java.prefs/share/classes/java/util/prefs/NodeChangeEvent.java
> ---
> a/src/java.prefs/share/classes/java/util/prefs/NodeChangeEvent.java
> Wed Sep 25 21:26:38 2019 -0700
> +++
> b/src/java.prefs/share/classes/java/util/prefs/NodeChangeEvent.java
> Thu Sep 26 10:48:34 2019 -0700
> @@ -49,7 +49,7 @@
> *
> * @serial
> */
> - private Preferences child;
> + private transient Preferences child;
>
> /**
> * Constructs a new {@code NodeChangeEvent} instance.
>
>
More information about the core-libs-dev
mailing list