Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0047010Openbravo ERPA. Platformpublic2021-06-07 15:312021-06-10 10:08
shuehner 
shuehner 
urgentminorhave not tried
closedfixed 
5
 
PR21Q2PR21Q2 
Core
No
0047010: Running backoffice selenium tests fails with only openjdk-11-jre-headless installed but gui environment available
Server environments typically only have the -headless variant of java installed (all except GUI parts).
Ubuntu java packaging until recently included some GUI libraries also in the -headless variant but just 'fixed' that issue.

However that break usecases which accidentally relied on the old behavior.

One of them is the the java.imageio.ImageIO code of the JDK auto-detect if it runs in a GUI environment (i.e. DISPLAY environment var set) and if it does requires the full java to be installed. When not running in an GUI it works without problems with only the -headless.

The Image.java class in our backoffice-tests is hit by this behavior change if run on our CI environment (as in there the GUI is available to be able to run firefox)
Have openjdk-11-jdk-headless installed
Do NOT have openjdk-11-jdk package installed

Run the following test (from configured backoffice-test workspace)
ant -f src-test/com/openbravo/test/integration/erp/modules/client/application/testsuites/navigationbarcomponents/build.xml test.integration.erp.modules.client.application.testsuites.navigationbarcomponents.NAV0140_CheckYourCompanyLogo

It fails with:
java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
Add -Djava.awt.headless=true argument to the JVM running the tests to tell java it is not running in a GUI environment.
No tags attached.
blocks defect 0047009 closed shuehner Running backoffice selenium tests fails with only openjdk-11-jre-headless installed but gui environment available 
Issue History
2021-06-07 15:31shuehnerTypedefect => backport
2021-06-07 15:31shuehnerTarget Version => PR21Q2
2021-06-07 17:03hgbotResolutionopen => fixed
2021-06-07 17:03hgbotStatusscheduled => resolved
2021-06-07 17:03hgbotNote Added: 0129152
2021-06-07 17:03shuehnerFixed in Version => PR21Q2
2021-06-10 10:08shuehnerNote Added: 0129313
2021-06-10 10:08shuehnerStatusresolved => closed

Notes
(0129152)
hgbot   
2021-06-07 17:03   
Repository: https://gitlab.com/openbravo/ci/backoffice-test [^]
Changeset: 7ae511af90535d32dec88e9573a750ab22231776
Author: Stefan Huehner <stefan@huehner.org>
Date: 2021-06-07T17:02:42+02:00
URL: https://gitlab.com/openbravo/ci/backoffice-test/-/commit/7ae511af90535d32dec88e9573a750ab22231776 [^]

Fixes ISSUE-47010: Add java.awt.headless argument when running tests.

Avoid error about
java.lang.UnsatisfiedLinkError: Can't load library:
    /usr/lib/jvm/java-11-openjdk-amd64/lib/libawt_xawt.so

happening when only having openjdk-11-jdk-headless (but not
openjdk-11-jdk) installed while having GUI environment available.

Set the headless flag unconditionally. As junit run is forked from
inside ANT easiest is to add the flag directly in the build system.

---
M build.xml
---
(0129313)
shuehner   
2021-06-10 10:08   
Closing after CI jobs (try run for release) is no longer failing with the fix applied.