> Summary > ------- > > Adds a thread check to a number of `Platform` methods: > > accessibilityActiveProperty() > getPreferences() > isAccessibilityActive() > > These methods will throw an `IllegalStateException` if called on a thread > other than the JavaFX Application Thread. > > Problem > ------- > > JavaFX allows the Nodes and Scenes to be created and modified on any thread > as long as they are not yet attached to a `Window` that is showing. > > This is allowed in an implicit assumption that the construction code only > modifies the properties of the said Nodes and Scenes, but not other static or > global entities. Concurrent multi-threaded access of such entities not only > breaks the initialization of the properties, but also causes the failures > down the road, if the change to the global properties happens while the Nodes > and Scenes are still being constructed. > > Even JavaFX platform developers did not avoid tripping over this issue, as > can be illustrated by https://bugs.openjdk.org/browse/JDK-8348987 . > > Solution > -------- > > Fail each method fast with an `IllegalStateException` if called from a > background thread. > > While this solution won't prevent other possible abuse, such as getting a > reference to the property in the JavaFX Application Thread and later > accessing it in a background thread, adding a check and allowing these > methods to fail fast should prevent most likely scenarios.
Andy Goryachev has updated the pull request incrementally with one additional commit since the last revision: get preferences ------------- Changes: - all: https://git.openjdk.org/jfx/pull/1728/files - new: https://git.openjdk.org/jfx/pull/1728/files/0f39382c..e9bb3403 Webrevs: - full: https://webrevs.openjdk.org/?repo=jfx&pr=1728&range=03 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1728&range=02-03 Stats: 6 lines in 2 files changed: 5 ins; 1 del; 0 mod Patch: https://git.openjdk.org/jfx/pull/1728.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/1728/head:pull/1728 PR: https://git.openjdk.org/jfx/pull/1728