[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Integrated: 6450193: After the first Serialization, JTableHeader does not uninstall its UI
From:       Prasanta Sadhukhan <psadhukhan () openjdk ! org>
Date:       2023-09-27 4:33:24
Message-ID: dAHCbdpGXM0zmOynvUJtWZEdVjVpe6F8A20ptrwU0MI=.ed3e35e1-31a4-48d8-95b4-d9022a1b5fdf () github ! com
[Download RAW message or body]

On Thu, 31 Aug 2023 08:02:35 GMT, Prasanta Sadhukhan <psadhukhan@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

This pull request has now been integrated.

Changeset: 83806abe
Author:    Prasanta Sadhukhan <psadhukhan@openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/83806abe440809aaea47337646de96a97080724a
                
Stats:     81 lines in 2 files changed: 67 ins; 13 del; 1 mod

6450193: After the first Serialization, JTableHeader does not uninstall its UI

Reviewed-by: aivanov

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

PR: https://git.openjdk.org/jdk/pull/15507


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic