summaryrefslogtreecommitdiffstats
path: root/debian/patches/avoid-empty-java.class.path.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/avoid-empty-java.class.path.diff')
-rw-r--r--debian/patches/avoid-empty-java.class.path.diff90
1 files changed, 90 insertions, 0 deletions
diff --git a/debian/patches/avoid-empty-java.class.path.diff b/debian/patches/avoid-empty-java.class.path.diff
new file mode 100644
index 000000000..2f5251269
--- /dev/null
+++ b/debian/patches/avoid-empty-java.class.path.diff
@@ -0,0 +1,90 @@
+From 5e8f64e50f97d39e83a3358697be14db03566878 Mon Sep 17 00:00:00 2001
+From: Stephan Bergmann <sbergman@redhat.com>
+Date: Mon, 21 Feb 2022 11:55:21 +0100
+Subject: 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>
+---
+ jvmfwk/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 29de226211f1..e55b914edf13 100644
+--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
++++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+@@ -712,17 +712,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") {
+@@ -767,6 +772,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 4163eea57b7c..8aa85082b838 100644
+--- a/jvmfwk/source/framework.cxx
++++ b/jvmfwk/source/framework.cxx
+@@ -195,8 +195,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 0af34a443f3c..bb5df10a9c4d 100644
+--- a/jvmfwk/source/fwkbase.cxx
++++ b/jvmfwk/source/fwkbase.cxx
+@@ -460,6 +460,9 @@
+
+ sPaths = OUStringToOString(
+ sBufCP.makeStringAndClear(), osl_getThreadTextEncoding());
++ if (sPaths.isEmpty()) {
++ return "";
++ }
+
+ OString sOptionClassPath = "-Djava.class.path=" + sPaths;
+ return sOptionClassPath;