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

Phil Race prr at openjdk.org
Thu Nov 3 22:05:34 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.

Same as Alexey. It looks OK. I was not sure about new public API for the convenience method but
we aleady have precedent for these on LookAndFeel.
Any BACKPORT would have to be different.
I'd like to hear the results of Alexey's testing as the next step.

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

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



More information about the client-libs-dev mailing list