<i18n dev> RFR: 8259522: Apply java.io.Serial annotations in java.desktop [v2]

Prasanta Sadhukhan psadhukhan at openjdk.java.net
Wed Jan 13 06:13:57 UTC 2021


On Tue, 12 Jan 2021 20:42:18 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

>> Please review the application of @java.io.Serial annotation (JDK-8202385) to types in the desktop module to enable stricter compile-time checking of serialization-related declarations.
>> 
>> This annotation can be applied to these methods in the module:
>> 
>>     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
>> 
>> Notes:
>>   - I have tried to update the comments for serialVersionUID as accurately as possible, but mostly based on the source code history and bugs in JBS where that field was added
>>   - Some of the readObject/writeObject methods in the javax.swing package does not have a spec, because this package and some others are excluded from the serialization specification.
>> 
>> A similar fix was implemented for java.base module as well:
>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2019-August/062046.html
>
> Sergey Bylokhov has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Update src/java.desktop/share/classes/java/awt/image/ImagingOpException.java
>    
>    Co-authored-by: Aleksei Ivanov <70774172+aivanov-jdk at users.noreply.github.com>
>  - Update src/java.desktop/share/classes/java/awt/image/RasterFormatException.java
>    
>    Co-authored-by: Aleksei Ivanov <70774172+aivanov-jdk at users.noreply.github.com>

Why do we add serialVersionUID in some classes like DefaultMutableTreeNode.java but not in other swing classes?
Also, if this change is for stricter compile-time checking, shouldn't we remove @SuppressWarnings("serial") check?

-------------

PR: https://git.openjdk.java.net/jdk/pull/2020


More information about the i18n-dev mailing list