summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx3
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx7
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 85f31a383fc6..fb4227da1964 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)