On Wed, 3 Dec 2025 21:53:06 GMT, Alexander Zuev <[email protected]> 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.

The test does that too deserialize after serialize in `serialize` 
method...actually the method is a misnomer but I kept it as it is from 
reproducer..

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28627#discussion_r2587154103

Reply via email to