From 95b9ae9cd7ba53bff25533397878d49adffebee0 Mon Sep 17 00:00:00 2001 From: Joachim Lingner Date: Thu, 21 Oct 2010 16:14:09 +0200 Subject: jl162 #i115180# OOo does not find VM runtime library of Java 1.6.0_22 on Mac --- jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'jvmfwk/plugins') diff --git a/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx b/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx index 6dd18ccc9f18..9bc8adfb21db 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx @@ -73,7 +73,8 @@ char const* const* OtherInfo::getRuntimePaths(int * size) "/bin/hotspot/jvm.dll" #elif UNX #ifdef MACOSX - "/../../../JavaVM" + "/../../../JavaVM", + "/../../../../../Frameworks/JavaVM.framework/JavaVM" //as of 1.6.0_22 #else "/lib/" JFW_PLUGIN_ARCH "/client/libjvm.so", // for Blackdown PPC "/lib/" JFW_PLUGIN_ARCH "/server/libjvm.so", // for Blackdown AMD64 -- cgit From f1b79dae76ea0ba3d03854c121cfbd958fe86cee Mon Sep 17 00:00:00 2001 From: Joachim Lingner Date: Tue, 26 Oct 2010 12:28:33 +0200 Subject: jl162 #i115180# fix problems with latest java 1.6.0_22 on MacOS 10.6 --- jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx | 4 +- .../plugins/sunmajor/pluginlib/sunjavaplugin.cxx | 62 +++++++++++++++++++++- .../plugins/sunmajor/pluginlib/sunjavaplugin.map | 5 ++ jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx | 4 +- jvmfwk/plugins/sunmajor/pluginlib/util.cxx | 8 +-- 5 files changed, 72 insertions(+), 11 deletions(-) (limited to 'jvmfwk/plugins') 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; } -- cgit