JDK 14 RFR of JDK-8231546: Suppress warnings on non-serializable instance fields in java.prefs module
Chris Hegarty
chris.hegarty at oracle.com
Thu Sep 26 19:58:12 UTC 2019
+1. Should the @serial javadoc tag be removed?
-Chris.
> On 26 Sep 2019, at 19:27, Roger Riggs <Roger.Riggs at oracle.com> wrote:
>
> 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