Issue :
https://bugs.openjdk.java.net/browse/JDK-8244110

Root Cause :
Fix of [JDK-8175358](https://bugs.openjdk.java.net/browse/JDK-8175358) added 
code to remove accelerators from a scene
in Scene property listener of MenuButtonSkinBase. That fix uses getSkinnable() 
in listener. It turned out that it can
be null as found out by failing system test.

Fix :
As pointed out by @kleopatra on the JBS, getSkinnable() should never be null 
for a valid skin. Hence, the correct fix
is to remove listener cleanly in dispose method. See JBS comments for more 
info. This also addresses
[JDK-8244081](https://bugs.openjdk.java.net/browse/JDK-8244081).

Testing :
1) Failing system test - passes after the fix
2) 3 unit tests which used to log NPE message silently and pass have been made 
to fail without this fix - these tests
passes after the fix

Special Thanks to @kleopatra for most of the test digging and fix guidance.

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

Commit messages:
 - MenuButtonSkinBase_Regression_fix

Changes: https://git.openjdk.java.net/jfx/pull/205/files
 Webrev: https://webrevs.openjdk.java.net/jfx/205/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8244110
  Stats: 43 lines in 2 files changed: 38 ins; 1 del; 4 mod
  Patch: https://git.openjdk.java.net/jfx/pull/205.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/205/head:pull/205

PR: https://git.openjdk.java.net/jfx/pull/205

Reply via email to