You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.7 KiB
94 lines
3.7 KiB
From 36c5c16b7846ff31f403913ad5cdddf8b22fda43 Mon Sep 17 00:00:00 2001
|
|
From: Stephan Bergmann <sbergman@redhat.com>
|
|
Date: Mon, 21 Feb 2022 11:55:21 +0100
|
|
Subject: [PATCH] Avoid unnecessary empty -Djava.class.path=
|
|
|
|
Change-Id: Idcfe7321077b60381c0273910b1faeb444ef1fd8
|
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130242
|
|
Tested-by: Jenkins
|
|
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
---
|
|
.../plugins/sunmajor/pluginlib/sunjavaplugin.cxx | 16 +++++++++++++---
|
|
jvmfwk/source/framework.cxx | 8 ++++++--
|
|
jvmfwk/source/fwkbase.cxx | 3 +++
|
|
3 files changed, 22 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
|
|
index 4760ab6..ea133ea 100644
|
|
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
|
|
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
|
|
@@ -687,17 +687,22 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
|
|
// all versions below 1.5.1
|
|
options.emplace_back("abort", reinterpret_cast<void*>(abort_handler));
|
|
bool hasStackSize = false;
|
|
+#ifdef UNX
|
|
+ // Until java 1.5 we need to put a plugin.jar or javaplugin.jar (<1.4.2)
|
|
+ // in the class path in order to have applet support:
|
|
+ OString sAddPath = getPluginJarPath(pInfo->sVendor, pInfo->sLocation,pInfo->sVersion);
|
|
+#endif
|
|
for (int i = 0; i < cOptions; i++)
|
|
{
|
|
OString opt(arOptions[i].optionString);
|
|
#ifdef UNX
|
|
- // Until java 1.5 we need to put a plugin.jar or javaplugin.jar (<1.4.2)
|
|
- // in the class path in order to have applet support:
|
|
if (opt.startsWith("-Djava.class.path="))
|
|
{
|
|
- OString sAddPath = getPluginJarPath(pInfo->sVendor, pInfo->sLocation,pInfo->sVersion);
|
|
if (!sAddPath.isEmpty())
|
|
+ {
|
|
opt += OStringChar(SAL_PATHSEPARATOR) + sAddPath;
|
|
+ sAddPath.clear();
|
|
+ }
|
|
}
|
|
#endif
|
|
if (opt == "-Xint") {
|
|
@@ -742,6 +747,11 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
|
|
}
|
|
#endif
|
|
}
|
|
+#ifdef UNX
|
|
+ if (!sAddPath.isEmpty()) {
|
|
+ options.emplace_back("-Djava.class.path=" + sAddPath, nullptr);
|
|
+ }
|
|
+#endif
|
|
|
|
std::unique_ptr<JavaVMOption[]> sarOptions(new JavaVMOption[options.size()]);
|
|
for (std::vector<Option>::size_type i = 0; i != options.size(); ++i) {
|
|
diff --git a/jvmfwk/source/framework.cxx b/jvmfwk/source/framework.cxx
|
|
index 3212030..f532ebd 100644
|
|
--- a/jvmfwk/source/framework.cxx
|
|
+++ b/jvmfwk/source/framework.cxx
|
|
@@ -210,8 +210,12 @@ javaFrameworkError jfw_startVM(
|
|
//In direct mode the options are specified by bootstrap variables
|
|
//of the form UNO_JAVA_JFW_PARAMETER_1 .. UNO_JAVA_JFW_PARAMETER_n
|
|
vmParams = jfw::BootParams::getVMParameters();
|
|
- sUserClassPath =
|
|
- "-Djava.class.path=" + jfw::BootParams::getClasspath();
|
|
+ auto const cp = jfw::BootParams::getClasspath();
|
|
+ if (!cp.isEmpty())
|
|
+ {
|
|
+ sUserClassPath =
|
|
+ "-Djava.class.path=" + cp;
|
|
+ }
|
|
}
|
|
else
|
|
OSL_ASSERT(false);
|
|
diff --git a/jvmfwk/source/fwkbase.cxx b/jvmfwk/source/fwkbase.cxx
|
|
index ece4dd2..93c32a7 100644
|
|
--- a/jvmfwk/source/fwkbase.cxx
|
|
+++ b/jvmfwk/source/fwkbase.cxx
|
|
@@ -460,6 +460,9 @@ OString makeClassPathOption(OUString const & sUserClassPath)
|
|
|
|
sPaths = OUStringToOString(
|
|
sBufCP.makeStringAndClear(), osl_getThreadTextEncoding());
|
|
+ if (sPaths.isEmpty()) {
|
|
+ return "";
|
|
+ }
|
|
|
|
OString sOptionClassPath = "-Djava.class.path=" + sPaths;
|
|
return sOptionClassPath;
|
|
--
|
|
2.39.2
|
|
|