RFR: 6441373: Editing JTable is not Serializable
Alexander Zuev
kizune at openjdk.org
Wed Dec 3 21:55:22 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..
test/jdk/javax/swing/JTable/EditingJTableNotSerializable.java line 65:
> 63: tce.stopCellEditing();
> 64: System.out.println("Serializing non-editing JTable");
> 65: serialize(jt);
Can you please add the code that tries to deserialize the new object from the serialized form? Just to be sure that there is nothing that will be broken in the process of serialization.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28627#discussion_r2586733195
More information about the client-libs-dev
mailing list