On Fri, 22 Sep 2023 07:18:09 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

>> After the first time a JTableHeader is serialized, it no longer will 
>> uninstall its UI upon subsequent serializations.
>> This happens for classes that use the BasicTableHeaderUI class. Any LAF that 
>> extends the BasicTableHeaderUI like SynthTableHeaderUI and 
>> WindowsTableHeaderUI will get an NotSerializableException thrown
>> 
>> Each time an JComponent instance is Serialized, a [counter 
>> ](https://github.com/openjdk/jdk/blob/218829e0a2a3ae5599b81733df53557966392033/src/java.desktop/share/classes/javax/swing/JComponent.java#L5644-L5645)
>>  for the instance is incremented. It is de-incremented in JComponent's 
>> writeObject or a class that implements it the same way, like JButton, 
>> JScrollPane etc..
>> With JTableHeader it does not deincrement the counter. The uninstall 
>> mechanism will not uninstall a UI if the counter is not 0 on the first 
>> pass..It is not possible to call JComponent.setWriteObjectCounter in 
>> JTableHeader as it is not in the same package so the fix is to remove the 
>> writeObject implementation and rely on JComponent writeObject implementation 
>> to make sure uninstallation of UI happens and also NotSerializableException 
>> does not happen for Synth
>
> Prasanta Sadhukhan has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   try-with-resource use

Looks good.

Yet I have a small question.

test/jdk/javax/swing/JTableHeader/SerializeJTableHeader.java line 55:

> 53:         for (UIManager.LookAndFeelInfo laf : 
> UIManager.getInstalledLookAndFeels()) {
> 54:             System.out.println("Testing L&F: " + laf);
> 55:             SwingUtilities.invokeAndWait(() -> setLookAndFeel(laf));

Why did you choose to set LAF on EDT? You then continue with creating and 
serialising the component on the main thread.

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

Marked as reviewed by aivanov (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/15507#pullrequestreview-1639803248
PR Review Comment: https://git.openjdk.org/jdk/pull/15507#discussion_r1334280564

Reply via email to