RFR: 8313424: JavaFX controls in the title bar (Preview) [v77]

Kevin Rushforth kcr at openjdk.org
Tue Jun 3 17:47:36 UTC 2025


On Tue, 3 Jun 2025 17:03:57 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> Implementation of [`StageStyle.EXTENDED`](https://gist.github.com/mstr2/0befc541ee7297b6db2865cc5e4dbd09).
>
> Michael Strauß has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 99 commits:
> 
>  - Merge branch 'master' into feature/extended-window
>  - add explicit cast in glass_window.cpp
>  - Merge branch 'master' into feature/extended-window
>  - Merge branch 'master' into feature/extended-window
>  - javadoc
>  - Merge branch 'master' into feature/extended-window
>  - reapply overlay CSS
>  - Merge branch 'master' into feature/extended-window
>  - simplify header area picking
>  - Fix top resize border on Windows
>  - ... and 89 more: https://git.openjdk.org/jfx/compare/fdd50d86...b947e33f

The compilation and headless tests pass on all platforms. The following 5 headful tests fail on macOS (13 and 14). The first 4 also fail on Linux (Ubuntu 22.04 LTS but I doubt that is relevant).


ViewPainterLeakTest > testViewPainterLeak() FAILED
    java.lang.AssertionError: Content of WeakReference was not collected. content: javafx.scene.Scene at 1a72a540
        at test.util.memory.JMemoryBuddy.assertCollectable(JMemoryBuddy.java:91)
        at test.com.sun.javafx.tk.quantum.ViewPainterLeakTest.testViewPainterLeak(ViewPainterLeakTest.java:106)

StyleMemoryLeakTest > testRootNodeMemoryLeak() FAILED
    java.lang.AssertionError: The following references should be collected: [javafx.stage.Stage at 6bc407fd]
        at test.util.memory.JMemoryBuddy.memoryTest(JMemoryBuddy.java:245)
        at test.javafx.scene.StyleMemoryLeakTest.testRootNodeMemoryLeak(StyleMemoryLeakTest.java:63)

ProgressIndicatorLeakTest > stageLeakWhenTreeNotShowing() FAILED
    java.lang.AssertionError: The following references should be collected: [javafx.stage.Stage at 6f7923a5]
        at test.util.memory.JMemoryBuddy.memoryTest(JMemoryBuddy.java:245)
        at test.javafx.scene.control.ProgressIndicatorLeakTest.stageLeakWhenTreeNotShowing(ProgressIndicatorLeakTest.java:90)

FocusedWindowNativeTest > testClosedFocusedStageLeak() FAILED
    java.lang.AssertionError: Content of WeakReference was not collected. content: javafx.stage.Stage at 3eb77ea8
        at test.util.memory.JMemoryBuddy.assertCollectable(JMemoryBuddy.java:91)
        at test.javafx.stage.FocusedWindowTestBase.testClosedFocusedStageLeakBase(FocusedWindowTestBase.java:75)
        at test.javafx.stage.FocusedWindowNativeTest.testClosedFocusedStageLeak(FocusedWindowNativeTest.java:42)

JSCallbackMemoryTest > testJsCallbackLeak() FAILED
    org.opentest4j.AssertionFailedError: All Stages are null ==> expected: <true> but was: <false>
        at app//org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
        at app//org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
        at app//org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
        at app//org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
        at app//org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:214)
        at app//test.memoryleak.JSCallbackMemoryTest.testJsCallbackLeak(JSCallbackMemoryTest.java:329


This suggests a memory leak related to the glass changes on macOS and Linux.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1605#issuecomment-2936433906


More information about the openjfx-dev mailing list