RFR: 8359108: Mac - When Swing starts First, native application menu doesn't work for JavaFX [v9]
Pabulaner IV
duke at openjdk.org
Thu Jan 8 10:54:05 UTC 2026
On Wed, 7 Jan 2026 19:28:41 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
>> Pabulaner IV has updated the pull request incrementally with one additional commit since the last revision:
>>
>> 8359108: Mac - When Swing starts First, native application menu doesn't work for JavaFX
>
> tests/manual/systemmenu/MacOSSystemMenuJFXPanelSwingFirstTest.java line 61:
>
>> 59:
>> 60: public void test() throws InterruptedException, IOException {
>> 61: initSwing(List.of(TEST_MENUS_0, TEST_MENUS_1));
>
> It would be nice to have some instructions / acceptance criteria in each test.
> Assume the tester knows nothing about the issue.
I added it to the readme, since it is basically the same procedure for every test.
> tests/manual/systemmenu/MacOSSystemMenuMultiWindowTest.java line 57:
>
>> 55: new MacOSSystemMenuMultiWindowTest().test();
>> 56: }
>> 57:
>
> I've got this upon exiting via system menu "Quit java" once:
>
>
> Exception in thread "InvokeLaterDispatcher" java.lang.RuntimeException: Main Java thread is detached.
> at javafx.graphics at 26-internal/com.sun.glass.ui.mac.MacApplication._submitForLaterInvocation(Native Method)
> at javafx.graphics at 26-internal/com.sun.glass.ui.mac.MacApplication.submitForLaterInvocation(MacApplication.java:375)
> at javafx.graphics at 26-internal/com.sun.glass.ui.InvokeLaterDispatcher.run(InvokeLaterDispatcher.java:122)
>
>
> Also, if I just launch it and then immediately select "Quit java" from the system menu, it hangs with a beach ball and requires ctrl-C in the terminal to kill it.
The tests are not meant for exiting via the system menu. They are intended to be run, so the user can test it, and then terminate themselves at the end.
> tests/manual/systemmenu/MacOSSystemMenuMultiWindowWithSwingFirstTest.java line 55:
>
>> 53:
>> 54: public static void main(String[] args) throws InterruptedException, IOException {
>> 55: new MacOSSystemMenuMultiWindowWithSwingFirstTest().test();
>
> this test requires selecting SourceLauncher -> Quit java from the system menu twice to close - is this intentional?
Same as for the previous comment.
> tests/manual/systemmenu/MacOSSystemMenuMultiWindowWithSwingFirstTest.java line 62:
>
>> 60: initJavaFX(List.of(TEST_MENUS_1, TEST_MENUS_3));
>> 61:
>> 62: focusJavaFX(0);
>
> Minor: noticed that the "Next" button seem to work only once in this and other tests. Is it intentional?
For me this test works fine, with the next button doing exactly what it should.
> tests/manual/systemmenu/MacOSSystemMenuSingleWindowWithSwingFirstTest.java line 56:
>
>> 54:
>> 55: public static void main(String[] args) throws InterruptedException, IOException {
>> 56: new MacOSSystemMenuSingleWindowWithSwingFirstTest().test();
>
> this test hangs when fx window is closed first via the close title bar icon, followed by closing the swing window with same method.
Again, the tests are intended only for validating the contents of the system menu bar and then pressing next. Everything else is not intended to work.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1904#discussion_r2671834550
PR Review Comment: https://git.openjdk.org/jfx/pull/1904#discussion_r2671836778
PR Review Comment: https://git.openjdk.org/jfx/pull/1904#discussion_r2671848391
PR Review Comment: https://git.openjdk.org/jfx/pull/1904#discussion_r2671840555
PR Review Comment: https://git.openjdk.org/jfx/pull/1904#discussion_r2671844236
More information about the openjfx-dev
mailing list