RFR: 8319779: SystemMenu: memory leak due to listener never being removed [v6]
Andy Goryachev
angorya at openjdk.org
Tue Jan 9 16:36:39 UTC 2024
On Tue, 9 Jan 2024 13:19:53 GMT, Johan Vos <jvos at openjdk.org> wrote:
>> A listener was added but never removed.
>> This patch removes the listener when the menu it links to is cleared. Fix for https://bugs.openjdk.org/browse/JDK-8319779
>
> Johan Vos has updated the pull request incrementally with two additional commits since the last revision:
>
> - Cleanup test
> - Add shim class so that we can access the references to com.sun.glass.ui.Menu instances.
> Add a test to make sure those references are gone.
modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/GlassSystemMenu.java line 98:
> 96: active.set(false);
> 97: }
> 98: active = new SimpleBooleanProperty(true);
should this be
if(active == null) {
active = new ...
} else {
active.set(false);
}
instead?
modules/javafx.graphics/src/main/java/com/sun/javafx/tk/quantum/GlassSystemMenu.java line 224:
> 222: mb.textProperty().when(active).addListener(valueModel -> glassMenu.setTitle(parseText(mb)));
> 223: mb.disableProperty().when(active).addListener(valueModel -> glassMenu.setEnabled(!mb.isDisable()));
> 224: mb.mnemonicParsingProperty().when(active).addListener(valueModel -> glassMenu.setTitle(parseText(mb)));
is `active` guaranteed to be non-null at this point (and also on L279)?
assuming the code on L98 is fixed and does not clobber the old pointer.
tests/system/src/test/java/test/com/sun/javafx/tk/quantum/SystemMenuBarTest.java line 227:
> 225: if (!JMemoryBuddy.checkCollectable(wr)) {
> 226: strongCount++;
> 227: assertTrue("Too much refs", strongCount < 2);
"too many" ?
tests/system/src/test/java/test/com/sun/javafx/tk/quantum/SystemMenuBarTest.java line 254:
> 252: return menuBar;
> 253: }
> 254:
extra newline?
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1283#discussion_r1446313415
PR Review Comment: https://git.openjdk.org/jfx/pull/1283#discussion_r1446323094
PR Review Comment: https://git.openjdk.org/jfx/pull/1283#discussion_r1446325052
PR Review Comment: https://git.openjdk.org/jfx/pull/1283#discussion_r1446327877
More information about the openjfx-dev
mailing list