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