RFR: 8294589: MenuBarSkin: memory leak when changing skin [v15]

Andy Goryachev angorya at openjdk.org
Wed Nov 30 23:27:35 UTC 2022


On Wed, 30 Nov 2022 21:08:15 GMT, John Hendrikx <jhendrikx at openjdk.org> wrote:

>> Andy Goryachev has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   8294589: cleanup
>
> modules/javafx.controls/src/main/java/javafx/scene/control/skin/MenuBarSkin.java line 293:
> 
>> 291: 
>> 292:             if (scene != null ) {
>> 293:                 sceneListenerHelper = new ListenerHelper(MenuBarSkin.this);
> 
> Why does this (still) need to rely on a weak reference?  Skins have a well specified life cycle do they not?

You are right: some weak listeners remain, I did not want to re-write the whole thing for a fear of introducing regression and to keep the changes to a minimum.

The second `ListenerHelper` (line 293) gets disconnected in dispose(), or when the skin is collected (since the skin may not be explicitly uninstalled, but instead the whole component or `Pane` might be removed from the scene and discarded.

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

PR: https://git.openjdk.org/jfx/pull/906


More information about the openjfx-dev mailing list