Discuss: SkinBase - add api to support register InvalidationListeners

Kevin Rushforth kevin.rushforth at oracle.com
Thu Jan 7 22:46:28 UTC 2021

I think this sounds like a very natural addition to the API. Making it 
easier for controls to clean up after themselves seems like a win.

-- Kevin

On 1/7/2021 5:45 AM, Jeanette Winzenburg wrote:
> Recently filed (RFE) https://bugs.openjdk.java.net/browse/JDK-8258777 
> - it's about adding api to support un/register invalidationListener 
> just the same way as changeListener.
> Trigger was work on cleaning up skins such that they don't misbehave 
> (f.i. leaking memory or throwing exception, 
> https://bugs.openjdk.java.net/browse/JDK-8241364) on switching the 
> skin. Most of the related issues boil down to incomplete removal of 
> listeners. As far as manual added (but not removed) changeListeners 
> are involved, the fix is to use skin.registerChangeListener: all those 
> are auto-removed in skinbase.dispose.
> For InvalidationListeners, the fix is cumbersome: it requires storing 
> both the listener and its weak wrapper, manually adding the weak 
> wrapper and manually removing it in dispose. Getting really boring if 
> a skin (like TextInputXX) registers many of them ..
> IMO, not having symmetric support of invalidation- vs changeListeners 
> in SkinBase api very much feels like an omission - which would be 
> fixed by this :)
> Opinions, please.
> -- Jeanette

More information about the openjfx-dev mailing list