RFR: 8244110: NPE in MenuButtonSkinBase change listener
Ajit Ghaisas
aghaisas at openjdk.java.net
Mon May 4 09:49:21 UTC 2020
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
More information about the openjfx-dev
mailing list