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

Reply via email to