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