RFR: 8278620: properties installed by javax.swing.LookAndFeel installColors and installColorsAndFont are not uninstalled

Phil Race prr at openjdk.org
Fri Nov 4 20:38:28 UTC 2022


On Tue, 4 Oct 2022 22:52:30 GMT, SWinxy <duke at openjdk.org> wrote:

> Many `installDefaults` methods set the font, foreground, and background on objects but their inverse methods `uninstallDefaults` do not remove them. I've added an inverse method to remove the colors and font to call for the `uninstallDefaults` methods that install defaults.
> 
> `AquaButtonUI` can call its super since it would otherwise be repeated code. `BasicComboBoxUI` (weirdly) installs the properties again when it should be uninstalling them, so I changed.
> 
> I noticed that, in a few subclasses, only one of calls to the super of `installDefaults` and `uninstallDefaults` are made. That is, an overridden `installDefaults` may call its super while the overridden `uninstallDefaults` does not call its super (or vise versa). These classes are: `AquaTabbedPaneUI`, `SynthMenuItemUI`, `SynthSplitPaneUI`, and `XTextAreaPeer`.
> 
> Sorry I couldn't write a test; I wasn't sure how I should have accessed the protected variable aside from creating extending classes for each class that changed.
> 
> See also #6603, where this issue was discovered.

You could move the methods to some internal place like SwingUtilities2.java.
It would just seem very inconsistent with all the others.
But that's what you'd have to do for any backport that wanted the same "fix" to those L&Fs.

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

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



More information about the client-libs-dev mailing list