summaryrefslogtreecommitdiff
path: root/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx')
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
index 43556e2c566a..6cd5c19267ec 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
@@ -54,6 +54,10 @@
#include "vendorlist.hxx"
#include "diagnostics.h"
+#ifdef MACOSX
+#include "util_cocoa.hxx"
+#endif
+
#ifdef ANDROID
#include <osl/detail/android-bootstrap.h>
#else
@@ -655,7 +659,16 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
//Check if the Vendor (pInfo->sVendor) is supported by this plugin
if ( ! isVendorSupported(pInfo->sVendor))
return JFW_PLUGIN_E_WRONG_VENDOR;
+#ifdef MACOSX
+ rtl::Reference<VendorBase> aVendorInfo = getJREInfoByPath( OUString( pInfo->sLocation ) );
+ if ( !aVendorInfo.is() || aVendorInfo->compareVersions( OUString( pInfo->sVersion ) ) < 0 )
+ return JFW_PLUGIN_E_VM_CREATION_FAILED;
+#endif
OUString sRuntimeLib = getRuntimeLib(pInfo->arVendorData);
+#ifdef MACOSX
+ if ( !JvmfwkUtil_isLoadableJVM( sRuntimeLib ) )
+ return JFW_PLUGIN_E_VM_CREATION_FAILED;
+#endif
JFW_TRACE2("Using Java runtime library: " << sRuntimeLib);
#ifndef ANDROID