RFR: 8260592: jpackage tests fail when Desktop is not supported

Aleksey Shipilev shade at openjdk.java.net
Thu Jan 28 22:08:43 UTC 2021


On Thu, 28 Jan 2021 20:13:23 GMT, Alexey Semenyuk <asemenyuk at openjdk.org> wrote:

>> If you run x86 configuration (cross-compiled on x86_64), then many tests would fail with:
>> 
>> $ CONF=linux-x86-server-fastdebug make images run-test TEST=tools/jpackage
>> ...
>> can not load libgnomevfs-2.so
>> Exception in thread "main" java.lang.ExceptionInInitializerError
>> Caused by: java.lang.UnsupportedOperationException: Desktop API is not supported on the current platform
>> at java.desktop/java.awt.Desktop.getDesktop(Unknown Source)
>> at com.that/com.that.main.Florence.createInstance(Unknown Source)
>> at com.that/com.that.main.Florence.<clinit>(Unknown Source)
>> Failed to launch JVM
>> java.lang.AssertionError: Expected [0]. Actual [1]: Check command [/home/shade/trunks/jdk/build/linux-x86-server-fastdebug/test-support/jtreg_test_jdk_tools_jpackage/scratch/10/./testMainLauncherIsModular.ed4f638d/output/MainLauncherIsModularAddLauncherTest/bin/ModularAppLauncher](1) exited with 0 code
>> 
>> The tests probably need to check `Desktop.isDesktopSupported()`, similarly how they check `GraphicsEnvironment.isHeadless()`.
>> 
>> Additional testing:
>>  - [x] Linux x86_32 `tools/jpackage` (now pass)
>>  - [x] Linux x86_64 `tools/jpackage` (still pass)
>
> test/jdk/tools/jpackage/apps/image/Hello.java line 166:
> 
>> 164:         }
>> 165: 
>> 166:         if (!Desktop.isDesktopSupported()) {
> 
> Would it make more sense to replace
> `if (GraphicsEnvironment.isHeadless())`
> with
> `if (GraphicsEnvironment.isHeadless() || !Desktop.isDesktopSupported())`
> without need to add another `trace()` call?

I would prefer to have separate messages for "headless" and "desktop capable". I can merge these, if you insist.

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

PR: https://git.openjdk.java.net/jdk/pull/2291


More information about the core-libs-dev mailing list