[Libreoffice-commits] core.git: jvmfwk/plugins

Stephan Bergmann sbergman at redhat.com
Mon Aug 28 13:47:33 UTC 2017


 jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx     |    3 ++-
 jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx |    7 ++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 52ffad9bb7be800790de6d918154dbeade88cadd
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Aug 28 15:35:43 2017 +0200

    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.
    
    Change-Id: Idcebc833472c81a1dc74dcdd481b0a37274a8713

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 9646ba3a6f87..23c5983dcbc4 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 == '.') )
@@ -97,6 +97,8 @@ bool SunVersion::init(const char *szVersion)
                 pCur + 1 != pEnd
                 || rtl::isAsciiDigit(static_cast<unsigned char>(*pCur))) )
         {
+            bool afterMaint = pCur != pEnd && (*pCur == '_' || *pCur == '-');
+
             int len = pCur - pLast;
             if (len >= 127)
                 return false;
@@ -107,6 +109,9 @@ bool SunVersion::init(const char *szVersion)
             pLast = pCur;
 
             m_arVersionParts[nPart] = atoi(buf);
+
+            if (afterMaint)
+                nPart = 2;
             nPart ++;
             nPartPos = 0;
             if (nPart == 3)


More information about the Libreoffice-commits mailing list