RFR: 6441373: Editing JTable is not Serializable

Sergey Bylokhov serb at openjdk.org
Sat Dec 6 01:28:59 UTC 2025


On Wed, 3 Dec 2025 10:05:51 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

> Issue is when JTable is in editing mode, it is not Serializable as it gives exception
> 
> java.io.NotSerializableException: java.lang.reflect.Constructor
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1149) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1502)
>         at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1467)
>         at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1385)
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1143) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1502)
> .......
> 
> 
> It is caused by creation of `GenericEditor` class which uses a non-serializable Constructor field.
> This is fixed by making the field transient..
> Also, `editorRemover` field is made transient as it is object of `CellEditorRemover` class which is not Serializable..

the goal of CellEditorRemover was to call the cancelCellEditing on focus lost, how all this will work after deserialisation? when this cancelCellEditing() will be called if editorRemover==null?

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

PR Comment: https://git.openjdk.org/jdk/pull/28627#issuecomment-3619123669


More information about the client-libs-dev mailing list