[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