as determined by SkinMemoryLeakTest (remove line 170) and a leak tester
https://github.com/andy-goryachev-oracle/Test/blob/main/src/goryachev/apps/LeakTest.java
Also applies to SplitMenuButton, since they share the same base class MenuButtonSkinBase.
Make sure to configure the current test in LeakTest:
protected final Type WE_ARE_TESTING = Type.MENU_BUTTON; // or SPLIT_MENU_BUTTON
In addition, there seems to be another failure scenario when simply replacing the skin - no menu is shown upon a click. To reproduce, launch LeakTest and click once on the [Replace Skin] button. Second click restores the function.
caused by:
- adding and not removing EventHandlers
- setting and not clearing onAction handlers
- incorrect logic in setting mousePressed/mouse/Released handlers
https://github.com/andy-goryachev-oracle/Test/blob/main/src/goryachev/apps/LeakTest.java
Also applies to SplitMenuButton, since they share the same base class MenuButtonSkinBase.
Make sure to configure the current test in LeakTest:
protected final Type WE_ARE_TESTING = Type.MENU_BUTTON; // or SPLIT_MENU_BUTTON
In addition, there seems to be another failure scenario when simply replacing the skin - no menu is shown upon a click. To reproduce, launch LeakTest and click once on the [Replace Skin] button. Second click restores the function.
caused by:
- adding and not removing EventHandlers
- setting and not clearing onAction handlers
- incorrect logic in setting mousePressed/mouse/Released handlers
- relates to
-
JDK-8296409 Multiple copies of accelerator change listeners are added to MenuItems, but only 1 is removed
- Resolved