RFR: 4337898: Serializing DefaultTableCellRenderer changes colors [v4]

Prasanta Sadhukhan psadhukhan at openjdk.org
Mon Dec 1 07:41:10 UTC 2025


> When a `JTable `using any objects of type `DefaultTableCellRenderer`, or subclasses, is serialized, 
> the colors used to render cells in the JTable subsequent to the call to `writeObject()`
>  are forced to the default colors for `DefaultTableCellRenderer`'s immediate base class, JLabel, causing the colors
> defined in the JTable (typically black on white) to be ignored.
> 
> The problem seems to stem from a call to
> `installUI `in the `writeObject()` method of `JLabel`, `DefaultTableCellRenderer`'s base class.
>  This causes the `setForeground` and `setBackground` methods to be invoked with specific colors, which turn out to be JLabel's defaults.
> Invoking these methods subsequently with parameters of null restores normal operation same as is explicitly done in `DefaultTableCellRenderer.updateUI()`
> https://github.com/openjdk/jdk/blob/195b36f90b789b64f4a0fc867c620935d609a455/src/java.desktop/share/classes/javax/swing/table/DefaultTableCellRenderer.java#L159-L162
> 
> CI run is ok..

Prasanta Sadhukhan has updated the pull request incrementally with one additional commit since the last revision:

  Rethrow Exception

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/28549/files
  - new: https://git.openjdk.org/jdk/pull/28549/files/b0f6314a..f4766c74

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=28549&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28549&range=02-03

  Stats: 4 lines in 1 file changed: 2 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/28549.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28549/head:pull/28549

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


More information about the client-libs-dev mailing list