The misbehaviour was that an edit handler received both a commit and cancel event when cell commitEdit is called. That happened whenever a collaborator reset the controls editing state (either directly or indirectly) while processing the editCommit event. The reason was that the cell had not yet updated its own editing state when receiving the change of editing from the control.
Fix is to update cell's editing state before firing the event, that is change the sequence or method calls from fire/super.commit to super.commit/fire. Added tests that fail/pass before/after the fix. ------------- Commit messages: - 8187307: LisingtView, TableView, TreeView: receives editCancel event Changes: https://git.openjdk.java.net/jfx/pull/684/files Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=684&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8187307 Stats: 158 lines in 8 files changed: 117 ins; 29 del; 12 mod Patch: https://git.openjdk.java.net/jfx/pull/684.diff Fetch: git fetch https://git.openjdk.java.net/jfx pull/684/head:pull/684 PR: https://git.openjdk.java.net/jfx/pull/684