summaryrefslogtreecommitdiff
path: root/jvmfwk/plugins
diff options
context:
space:
mode:
authorJoachim Lingner <jl@openoffice.org>2010-10-26 12:28:33 +0200
committerJoachim Lingner <jl@openoffice.org>2010-10-26 12:28:33 +0200
commitf1b79dae76ea0ba3d03854c121cfbd958fe86cee (patch)
tree30ee3815a10d5f3e687b8199d8236672781e0ac7 /jvmfwk/plugins
parent95b9ae9cd7ba53bff25533397878d49adffebee0 (diff)
jl162 #i115180# fix problems with latest java 1.6.0_22 on MacOS 10.6
Diffstat (limited to 'jvmfwk/plugins')
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx4
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx62
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.map5
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx4
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/util.cxx8
5 files changed, 72 insertions, 11 deletions
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx b/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx
index 9bc8adfb21db..3ae1c0f16b92 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx
@@ -73,7 +73,6 @@ char const* const* OtherInfo::getRuntimePaths(int * size)
"/bin/hotspot/jvm.dll"
#elif UNX
#ifdef MACOSX
- "/../../../JavaVM",
"/../../../../../Frameworks/JavaVM.framework/JavaVM" //as of 1.6.0_22
#else
"/lib/" JFW_PLUGIN_ARCH "/client/libjvm.so", // for Blackdown PPC
@@ -96,8 +95,7 @@ char const* const* OtherInfo::getLibraryPaths(int* size)
#ifdef UNX
static char const * ar[] = {
#ifdef MACOSX
- "/../Libraries",
- "/lib"
+ //mac version does not have a ld library path anymore
#else
"/bin",
"/jre/bin",
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
index 896342b5389d..b43edf53b3bc 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
@@ -470,10 +470,10 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
{
JFW_ENSURE(0, OUSTR("[Java framework]sunjavaplugin" SAL_DLLEXTENSION
" could not load Java runtime library: \n")
- + sRuntimeLib + OUSTR("."));
+ + sRuntimeLib + OUSTR("\n"));
JFW_TRACE0(OUSTR("[Java framework]sunjavaplugin" SAL_DLLEXTENSION
" could not load Java runtime library: \n")
- + sRuntimeLib + OUSTR("."));
+ + sRuntimeLib + OUSTR("\n"));
return JFW_PLUGIN_E_VM_CREATION_FAILED;
}
@@ -614,5 +614,63 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
return errcode;
}
+extern "C"
+javaPluginError jfw_plugin_existJRE(const JavaInfo *pInfo, sal_Bool *exist)
+{
+ javaPluginError ret = JFW_PLUGIN_E_NONE;
+ if (!pInfo || !exist)
+ return JFW_PLUGIN_E_INVALID_ARG;
+ ::rtl::OUString sLocation(pInfo->sLocation);
+
+ if (sLocation.getLength() == 0)
+ return JFW_PLUGIN_E_INVALID_ARG;
+ ::osl::DirectoryItem item;
+ ::osl::File::RC rc_item = ::osl::DirectoryItem::get(sLocation, item);
+ if (::osl::File::E_None == rc_item)
+ {
+ *exist = sal_True;
+ }
+ else if (::osl::File::E_NOENT == rc_item)
+ {
+ *exist = sal_False;
+ }
+ else
+ {
+ ret = JFW_PLUGIN_E_ERROR;
+ }
+#ifdef MACOSX
+ //We can have the situation that the JavaVM runtime library is not
+ //contained within JAVA_HOME. Then the check for JAVA_HOME would return
+ //true although the runtime library may not be loadable.
+ if (ret == JFW_PLUGIN_E_NONE && *exist == sal_True)
+ {
+ rtl::OUString sRuntimeLib = getRuntimeLib(pInfo->arVendorData);
+ JFW_TRACE2(OUSTR("[Java framework] Checking existence of Java runtime library.\n"));
+
+ ::osl::DirectoryItem itemRt;
+ ::osl::File::RC rc_itemRt = ::osl::DirectoryItem::get(sRuntimeLib, itemRt);
+ if (::osl::File::E_None == rc_itemRt)
+ {
+ *exist = sal_True;
+ JFW_TRACE2(OUSTR("[Java framework] Java runtime library exist: ")
+ + sRuntimeLib + OUSTR("\n"));
+
+ }
+ else if (::osl::File::E_NOENT == rc_itemRt)
+ {
+ *exist = sal_False;
+ JFW_TRACE2(OUSTR("[Java framework] Java runtime library does not exist: ")
+ + sRuntimeLib + OUSTR("\n"));
+ }
+ else
+ {
+ ret = JFW_PLUGIN_E_ERROR;
+ JFW_TRACE2(OUSTR("[Java framework] Error while looking for Java runtime library: ")
+ + sRuntimeLib + OUSTR(" \n"));
+ }
+ }
+#endif
+ return ret;
+}
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.map b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.map
index db75c9611076..901867f0a43d 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.map
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.map
@@ -6,3 +6,8 @@ UDK_3_0_0 {
local:
*;
};
+
+UDK_3.1 { # OOo 3.3
+ global:
+ jfw_plugin_existJRE;
+} UDK_3_0_0;
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx
index e17a6c788096..5d52046c705e 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx
@@ -418,9 +418,9 @@ SelfTest::SelfTest()
break;
}
if (bRet)
- JFW_TRACE2("[Java framework] sunjavaplugin: Testing class SunVersion succeeded.");
+ JFW_TRACE2("[Java framework] sunjavaplugin: Testing class SunVersion succeeded.\n");
else
- OSL_ENSURE(bRet, "[Java framework] sunjavaplugin: SunVersion self test failed");
+ OSL_ENSURE(bRet, "[Java framework] sunjavaplugin: SunVersion self test failed.\n");
}
#endif
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/util.cxx b/jvmfwk/plugins/sunmajor/pluginlib/util.cxx
index bd49956c8baf..fc2a5b98215a 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/util.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/util.cxx
@@ -450,12 +450,12 @@ bool getJavaProps(const OUString & exePath,
rs = stdoutReader.readLine( & aLine);
if (rs != FileHandleReader::RESULT_OK)
break;
- JFW_TRACE2(OString("[Java framework] line:\" ")
- + aLine + OString(" \".\n"));
+// JFW_TRACE2(OString("[Java framework] line:\" ")
+// + aLine + OString(" \".\n"));
OUString sLine;
if (!decodeOutput(aLine, &sLine))
continue;
- JFW_TRACE2(OString("[Java framework] line:\" ")
+ JFW_TRACE2(OString("[Java framework]:\" ")
+ OString( CHAR_POINTER(sLine)) + OString(" \".\n"));
sLine = sLine.trim();
if (sLine.getLength() == 0)
@@ -509,7 +509,7 @@ bool decodeOutput(const rtl::OString& s, rtl::OUString* out)
} while (nIndex >= 0);
*out = buff.makeStringAndClear();
- JFW_TRACE2(*out);
+// JFW_TRACE2(*out);
return true;
}