summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/customize/cfgutil.cxx35
-rw-r--r--stoc/source/javavm/javavm.cxx7
2 files changed, 42 insertions, 0 deletions
diff --git a/cui/source/customize/cfgutil.cxx b/cui/source/customize/cfgutil.cxx
index 4e89b9c7a2d4..56d91c1eaf82 100644
--- a/cui/source/customize/cfgutil.cxx
+++ b/cui/source/customize/cfgutil.cxx
@@ -65,6 +65,7 @@
#include <vcl/help.hxx>
#include <vcl/vclmedit.hxx>
#include <o3tl/make_unique.hxx>
+#include <uno/current_context.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -541,6 +542,36 @@ namespace
}
}
+namespace
+{
+class NoEnableJavaInteractionContext : public cppu::WeakImplHelper<css::uno::XCurrentContext>
+{
+public:
+ explicit NoEnableJavaInteractionContext(
+ css::uno::Reference<css::uno::XCurrentContext> const& xContext)
+ : mxContext(xContext)
+ {
+ }
+ NoEnableJavaInteractionContext(const NoEnableJavaInteractionContext&) = delete;
+ NoEnableJavaInteractionContext& operator=(const NoEnableJavaInteractionContext&) = delete;
+
+private:
+ virtual ~NoEnableJavaInteractionContext() override {}
+
+ virtual css::uno::Any SAL_CALL getValueByName(OUString const& Name) override
+ {
+ if (Name == "DontEnableJava")
+ return css::uno::Any(true);
+ else if (mxContext.is())
+ return mxContext->getValueByName(Name);
+ else
+ return css::uno::Any();
+ }
+
+ css::uno::Reference<css::uno::XCurrentContext> mxContext;
+};
+
+} // namespace
void SfxConfigGroupListBox::FillScriptList(const css::uno::Reference< css::script::browse::XBrowseNode >& xRootNode,
SvTreeListEntry* pParentEntry, bool bCheapChildrenOnDemand)
@@ -548,6 +579,10 @@ void SfxConfigGroupListBox::FillScriptList(const css::uno::Reference< css::scrip
try {
if ( xRootNode->hasChildNodes() )
{
+ // tdf#120362: Don't ask to enable disabled Java when filling script list
+ css::uno::ContextLayer layer(
+ new NoEnableJavaInteractionContext(css::uno::getCurrentContext()));
+
Sequence< Reference< browse::XBrowseNode > > children =
xRootNode->getChildNodes();
bool bIsRootNode = false;
diff --git a/stoc/source/javavm/javavm.cxx b/stoc/source/javavm/javavm.cxx
index 968e776be2a0..2bf1fbf55229 100644
--- a/stoc/source/javavm/javavm.cxx
+++ b/stoc/source/javavm/javavm.cxx
@@ -778,6 +778,13 @@ JavaVirtualMachine::getJavaVM(css::uno::Sequence< sal_Int8 > const & rProcessId)
}
case JFW_E_JAVA_DISABLED:
{
+ bool bDontEnableJava = false;
+ auto xContext(css::uno::getCurrentContext());
+ if (xContext.is())
+ xContext->getValueByName("DontEnableJava") >>= bDontEnableJava;
+ if (bDontEnableJava)
+ return css::uno::Any();
+
//QueryBox:
//%PRODUCTNAME requires a Java runtime environment (JRE) to perform
//this task. However, use of a JRE has been disabled. Do you want to