Node.getPseudoClassStates() returns a new UnmodifiableObservableSet of PseudoClassState on each call. So in order to listen to any changes in this set, user must call the method Node.getPseudoClassStates() only once and keep a strong reference to the returned UnmodifiableObservableSet. So the fix is that the method Node.getPseudoClassStates() should return the same UnmodifiableObservableSet on every call. As the returned set is an UnmodifiableObservableSet, it will not have any impact on it's usage. Added a small unit test. and, Altered(minor) a test which was modified in past(https://github.com/openjdk/jfx/commit/0ac98695a1b11443c342fad4f009d6e03a052522) (https://github.com/openjdk/jfx/commit/62323e0a9c5817b33daa262d6914eba0e8d274ff) along with this method and should be updated in view of this change.
------------- Commit messages: - 8214699: Node.getPseudoClassStates must return the same instance on every call Changes: https://git.openjdk.java.net/jfx/pull/253/files Webrev: https://webrevs.openjdk.java.net/jfx/253/webrev.00 Issue: https://bugs.openjdk.java.net/browse/JDK-8214699 Stats: 19 lines in 3 files changed: 9 ins; 7 del; 3 mod Patch: https://git.openjdk.java.net/jfx/pull/253.diff Fetch: git fetch https://git.openjdk.java.net/jfx pull/253/head:pull/253 PR: https://git.openjdk.java.net/jfx/pull/253
