The issue was a glaring contract violation of TextAreaSkin which throws a 
UnsupportedOperationException. The fix was to remove the throwing and cleanup 
on dispose which implies

in TextAreaBehavior:
- remove the listener to focusProperty in dispose

in TextAreaSkin:
- register all listeners to control properties via skin api
- remove installed event filter in dispose
- remove direct children (here only the scrollPane)

Added tests to guard the listener re-wiring (must pass before and after), and 
tests to expose side-effects on replacing the skin (fail before, pass after)

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

Commit messages:
 - 8244419: TextAreaSkin: throws UnsupportedOperation on dispose

Changes: https://git.openjdk.java.net/jfx/pull/604/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=604&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8244419
  Stats: 392 lines in 8 files changed: 332 ins; 37 del; 23 mod
  Patch: https://git.openjdk.java.net/jfx/pull/604.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/604/head:pull/604

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

Reply via email to