diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-08-28 15:35:43 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-09-01 16:17:23 +0200 |
commit | 63e158c66edf74d320fd05197779429efc964955 (patch) | |
tree | 34d8104b0833fdc84c53394bc802cb8ef6f63269 /jvmfwk | |
parent | dee0773acd8bf2c537e6574534824599f29feaab (diff) |
tdf#100501: Adapt to Java 9 (at least on Linux x86-64)
Checking with both jdk-9+181_linux-x64_bin.tar.gz and
jre-9+181_linux-x64_bin.tar.gz as currently available at
<http://jdk.java.net/9/> "JDK 9 Early-Access Builds":
For one, make SunVersion::init understand <http://openjdk.java.net/jeps/223>
"JEP 223: New Version-String Scheme" at least insofar as to accept strings like
"9" with less than three dot-separated segments (where the missing segments are
treated like "0").
For another, at least for Linux x86-64, libjvm.so is now apparently located in a
path without an "amd64" architecture segment, "lib/server/libjvm.so". (But
could that also be "client"?) Other platforms may need further adjustments.
(cherry picked from commit 52ffad9bb7be800790de6d918154dbeade88cadd, plus
cda4cea7cdfc9a8de814b901b3b957f029d36aaf "tdf#100501: Fix thinko")
Reviewed-on: https://gerrit.libreoffice.org/41678
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
(cherry picked from commit c83aec1d026b9567e7e6d982e4d19f3a566b66d2)
Change-Id: Idcebc833472c81a1dc74dcdd481b0a37274a8713
Reviewed-on: https://gerrit.libreoffice.org/41700
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Tested-by: Jenkins <ci@libreoffice.org>
(cherry picked from commit a2fb0739bd1a9823f9b52f8efabae0bcf9ff6b0c)
Diffstat (limited to 'jvmfwk')
-rw-r--r-- | jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx | 3 | ||||
-rw-r--r-- | jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx index 7f7c4943c8be..7543f497eb83 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx @@ -68,7 +68,8 @@ char const* const* SunInfo::getRuntimePaths(int * size) "/lib/" JFW_PLUGIN_ARCH "/client/libjvm.so", "/lib/" JFW_PLUGIN_ARCH "/server/libjvm.so", "/lib/" JFW_PLUGIN_ARCH "/classic/libjvm.so", - "/lib/" JFW_PLUGIN_ARCH "/jrockit/libjvm.so" + "/lib/" JFW_PLUGIN_ARCH "/jrockit/libjvm.so", + "/lib/server/libjvm.so" #endif }; *size = SAL_N_ELEMENTS(ar); diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx index b4ad7019d449..2aedaa29938c 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx @@ -88,7 +88,7 @@ bool SunVersion::init(const char *szVersion) ! (nPartPos == 0) // prevents: ".4.1", "..1", part must start with digit && ( //separators after maintenance (1.4.1_01, 1.4.1-beta, or 1.4.1) - ((pCur == pEnd || *pCur == '_' || *pCur == '-') && (nPart == 2 )) + (pCur == pEnd || *pCur == '_' || *pCur == '-') || //separators between major-minor and minor-maintenance (nPart < 2 && *pCur == '.') ) @@ -96,6 +96,8 @@ bool SunVersion::init(const char *szVersion) //prevent 1.4.0. 1.4.0- pCur + 1 != pEnd || isdigit(*(pCur))) ) { + bool afterMaint = pCur == pEnd || *pCur == '_' || *pCur == '-'; + int len = pCur - pLast; if (len >= 127) return false; @@ -106,6 +108,9 @@ bool SunVersion::init(const char *szVersion) pLast = pCur; m_arVersionParts[nPart] = atoi(buf); + + if (afterMaint) + nPart = 2; nPart ++; nPartPos = 0; if (nPart == 3) |