RFR: 8324941: POC for Headless platform for JavaFX [v11]
Johan Vos
jvos at openjdk.org
Mon Jul 28 16:56:08 UTC 2025
On Fri, 25 Jul 2025 13:42:28 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:
>> Johan Vos has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Add copyright sections
>
> I'll review the code soon. I ran a full set of tests, excluding the robot tests, and see two failures (below), which you mentioned are expected. Presumably these are the same two failures you see?
>
> It would probably be best to skip these two tests when running the Headless glass platform. This could either be done as part of this PR or in a follow-up "Skip failing tests on Headless glass platform" bug.
>
> 1. MacPasteboardTest
>
>
> MacPasteboardTest > testValidLocalImageURLMacPasteboard() FAILED
> java.lang.NullPointerException: Cannot invoke "com.sun.glass.ui.mac.MacPasteboardShim.pushMacPasteboard(java.util.HashMap)" because "test.com.sun.glass.ui.mac.MacPasteboardTest.macPasteboardShim" is null
> at test.com.sun.glass.ui.mac.MacPasteboardTest.lambda$testValidLocalImageURLMacPasteboard$0(MacPasteboardTest.java:73)
>
> MacPasteboardTest > testDataBase64ImageMacPasteboard() FAILED
> java.lang.NullPointerException: Cannot invoke "com.sun.glass.ui.mac.MacPasteboardShim.pushMacPasteboard(java.util.HashMap)" because "test.com.sun.glass.ui.mac.MacPasteboardTest.macPasteboardShim" is null
> at test.com.sun.glass.ui.mac.MacPasteboardTest.lambda$testDataBase64ImageMacPasteboard$0(MacPasteboardTest.java:89)
>
> MacPasteboardTest > testNotAnImageURLMacPasteboard() FAILED
> java.lang.NullPointerException: Cannot invoke "com.sun.glass.ui.mac.MacPasteboardShim.pushMacPasteboard(java.util.HashMap)" because "test.com.sun.glass.ui.mac.MacPasteboardTest.macPasteboardShim" is null
> at test.com.sun.glass.ui.mac.MacPasteboardTest.lambda$testNotAnImageURLMacPasteboard$0(MacPasteboardTest.java:100)
>
>
> The tests in this class assume we are running the Mac glass platform, so they should all be skipped when running the Headless glass platform. One way to do this would be to add a `PlatformUtil::isHeadless` method and change all of the `assumeTrue(PlatformUtil.isMac())` calls to `assumeTrue(PlatformUtil.isMac() && !PlatformUtil.isHeadless())`. The assumeTrue wouldn't be annotated with a bug ID, since this expresses a fundamental requirement of the test, not a bug that needs to be fixed.
>
>
> 2. ClipboardTest::testCopyUTF8String
>
>
> ClipboardTest > testCopyUTF8String() FAILED
> org.opentest4j.AssertionFailedError: expected: < Jump to: 😃💁 Jump> but was: <HEADLESS_TEST>
> at app//org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
> at app//org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:...
@kevinrushforth I made one more final change, can you re-approve if you agree?
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1836#issuecomment-3128136836
More information about the openjfx-dev
mailing list