|Summary:||libreoffice does not recognize custom OpenJDK vendor name|
|Product:||Red Hat Enterprise Linux 7||Reporter:||Janne Pulkkinen <janne.pulkkinen+redhat-bugzilla>|
|Component:||libreoffice||Assignee:||Caolan McNamara <caolanm>|
|Status:||NEW ---||QA Contact:||Bill Sanford <bsanford>|
|Fixed In Version:||Doc Type:||If docs needed, set a value|
|Doc Text:||Story Points:||---|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
|Cloudforms Team:||---||Target Upstream Version:|
Description Janne Pulkkinen 2020-11-20 15:09:10 UTC
Description of problem: When running `soffice`, the executable `/usr/lib64/libreoffice/program/javaldx` will be executed which will check the Java implementation and compare its vendor name against those listed in `/usr/lib64/libreoffice/program/javavendors.xml` and the list stored in the shared library `/usr/lib64/libreoffice/program/libjvmfwklo.so`. If the Java vendor name isn't recognized, the following warning will be printed to stderr: ``` javaldx: Could not find a Java Runtime Environment! Warning: failed to read path from javaldx ``` Starting with at least the version java-1.8.0-openjdk-220.127.116.112.b10-1.el7_9, the Java implementation has the custom VM vendor name "Red Hat, Inc." instead of "Oracle Corporation" as used before. This can be checked using the command `java -XshowSettings:properties -version`. I was able to fix the issue by adding the "Red Hat, Inc." vendor name to both `/usr/lib64/libreoffice/program/javavendors.xml` and the shared library, which is compiled from a CXX file at `jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx`. The exact file can be found from libreoffice-core: https://github.com/LibreOffice/core/blob/master/jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx Version-Release number of selected component (if applicable): java-1.8.0-openjdk-18.104.22.1682.b10 libreoffice-base-22.214.171.124 How reproducible: Reproducible most of the time when calling `soffice`. `javaldx` isn't always called for some reason related to the environment, in which case `/usr/lib64/libreoffice/program/javaldx` can be called directly to reproduce the issue. Steps to Reproduce: 1. Install `java-1.8.0-openjdk` and `libreoffice`. 2. Run `soffice` Actual results: The warning `javaldx: Could not find a Java Runtime Environment!` will be printed in addition to the usual output. Expected results: No additional output should be printed to stderr Additional info: This bug also occurs on CentOS 7.8 and CentOS 8.2.2004. Downgrading to java-1.8.0-openjdk-126.96.36.1992.b10 works as a workaround, although certain newer versions may also work; I haven't tried bisecting the bug further.
Comment 2 Stephan Bergmann 2020-11-20 15:26:15 UTC
The upstream fix is <https://bugs.documentfoundation.org/show_bug.cgi?id=124503> "Support JRE installations with unknown java.vendor property", first appearing in LO 6.1.6. We could either see backport that, or patch the jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml and jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx files.