diff options
Diffstat (limited to '')
-rw-r--r-- | debian/patches/avoid-empty-java.class.path.diff | 90 |
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; |