RFR: 8242489: ChoiceBox: initially toggle not sync'ed to selection

Jeanette Winzenburg fastegal at openjdk.java.net
Mon Apr 13 11:00:20 UTC 2020

Macroscopic issue is that initially, the toggle is not sync'ed to the selection state. Root reason is an missing else
block when updating toggle selection state (see report for details).

Fixed by introducing the else block and removing all follow-up errors that tried to amend the consequences of the
incorrect selection state

- removed listener to selected item
- removed toggle selection update in showing listener

The former also fixed the memory leak when replacing the selectionModel plus an unreported NPE when the selectionModel
is null initially.

Added tests that failed before the fix and passed after. As there had been no tests around toggle state, so added some
to verify that the change doesn't break. Enhanced shim/skin to allow access to popup for testing. Removed the
informally ignored test part for memory leak.


Commit messages:
 - 8242489: ChoiceBox: initially toggle not sync'ed to selection

Changes: https://git.openjdk.java.net/jfx/pull/177/files
 Webrev: https://webrevs.openjdk.java.net/jfx/177/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8242489
  Stats: 375 lines in 5 files changed: 347 ins; 25 del; 3 mod
  Patch: https://git.openjdk.java.net/jfx/pull/177.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/177/head:pull/177

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

More information about the openjfx-dev mailing list