RFR: 8377189: Intermittent failure in TooltipTest.testCssStylesheetChangeTooltip [v2]
Marius Hanl
mhanl at openjdk.org
Mon Feb 9 21:50:18 UTC 2026
On Sat, 7 Feb 2026 01:36:20 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:
>> `test.robot.javafx.scene.TooltipTest` modifies the scene graph on a test worker thread, which can corrupt the scene graph and leads to test failures such as:
>>
>>
>> TooltipTest > testCssStylesheetChangeTooltip() FAILED
>> java.lang.AssertionError
>> at [javafx.graphics at 27-ea](mailto:javafx.graphics at 27-ea)/com.sun.javafx.css.StyleMap.getCascadingStyles(StyleMap.java:144)
>> at [javafx.graphics at 27-ea](mailto:javafx.graphics at 27-ea)/javafx.scene.CssStyleHelper.resetToInitialValues(CssStyleHelper.java:490)
>> at [javafx.graphics at 27-ea](mailto:javafx.graphics at 27-ea)/javafx.scene.CssStyleHelper.createStyleHelper(CssStyleHelper.java:193)
>> at [javafx.graphics at 27-ea](mailto:javafx.graphics at 27-ea)/javafx.scene.Node.reapplyCss(Node.java:9996)
>> at [javafx.graphics at 27-ea](mailto:javafx.graphics at 27-ea)/javafx.scene.Node.reapplyCSS(Node.java:9959)
>> at [javafx.graphics at 27-ea](mailto:javafx.graphics at 27-ea)/javafx.scene.Scene$10.onChanged(Scene.java:1682)
>> at [javafx.base at 27-ea](mailto:javafx.base at 27-ea)/com.sun.javafx.collections.TrackableObservableList.lambda$new$0(TrackableObservableList.java:44)
>> at [javafx.base at 27-ea](mailto:javafx.base at 27-ea)/com.sun.javafx.collections.ListListenerHelper$SingleChange.fireValueChangedEvent(ListListenerHelper.java:162)
>> at [javafx.base at 27-ea](mailto:javafx.base at 27-ea)/com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:71)
>> at [javafx.base at 27-ea](mailto:javafx.base at 27-ea)/javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:246)
>> at [javafx.base at 27-ea](mailto:javafx.base at 27-ea)/javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
>> at [javafx.base at 27-ea](mailto:javafx.base at 27-ea)/javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
>>
>>
>> or
>>
>>
>> TooltipTest > testCssStylesheetChangeTooltip() STANDARD_ERROR
>> Exception in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot invoke "java.util.List.clear()" because "this.selectors" is null
>> at [javafx.graphics at 27-internal](mailto:javafx.graphics at 27-internal)/com.sun.javafx.css.StyleMap.getCascadingStyles(StyleMap.java:148)
>> at [javafx.graphics at 27-internal](mailto:javafx.graphics at 27-internal)/javafx.scene.CssStyleHelper.resetToInitialValues(CssStyleHelper.java:490)
>> at [javafx.graphics at 27-internal](mailto:javafx.graphics at 27-interna...
>
> Michael Strauß has updated the pull request incrementally with one additional commit since the last revision:
>
> increase DELTA to 150
Since I wrote the test, I can confirm this fix looks good.
Back then, it worked for me (as it did until recently), so I did not consider modifying the stylesheet on another thread is a problem. But makes sense.
> TooltipTest > testShowDelayCssShowTooltipTwice() FAILED
org.opentest4j.AssertionFailedError: 204 <= 200 ==> expected: <true> but was: <false>
I think we had this kind of problem at least once in the past.
It should be safe to increase the delta a bit more, since we are far away from the default timing.
(That was the problem back then. You set a show delay of 100ms, but it still used the default 1000ms. So the delta should not be that big as otherwise we will not catch this regression. But we are far away from that).
Marked as reviewed by mhanl (Committer).
-------------
Marked as reviewed by mhanl (Committer).
PR Review: https://git.openjdk.org/jfx/pull/2066#pullrequestreview-3763912600
PR Review: https://git.openjdk.org/jfx/pull/2066#pullrequestreview-3765069085
More information about the openjfx-dev
mailing list