summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>2022-05-31 09:10:57 +0200
committerSamuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>2022-05-31 09:10:57 +0200
commit92617320938b6710dc9cb8eac48ab85c2ceaa867 (patch)
tree483effeb6307fb3adf3562d0172282daf7647e42
parentRevert incompatible ScriptEditor change (diff)
downloadcore-92617320938b6710dc9cb8eac48ab85c2ceaa867.tar.gz
core-92617320938b6710dc9cb8eac48ab85c2ceaa867.zip
Revert "Related tdf#116767: Call URLClassLoader.close"
This reverts commit 418533f0af7cd303d559c8fb136c49e7e9fb0d79.
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/ClassLoaderFactory.java4
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java91
2 files changed, 43 insertions, 52 deletions
diff --git a/scripting/java/com/sun/star/script/framework/provider/ClassLoaderFactory.java b/scripting/java/com/sun/star/script/framework/provider/ClassLoaderFactory.java
index 0974b8874110..b5e6e3085bd2 100644
--- a/scripting/java/com/sun/star/script/framework/provider/ClassLoaderFactory.java
+++ b/scripting/java/com/sun/star/script/framework/provider/ClassLoaderFactory.java
@@ -33,7 +33,7 @@ public class ClassLoaderFactory {
private ClassLoaderFactory() {}
- public static URLClassLoader getURLClassLoader(ScriptMetaData scriptData) {
+ public static ClassLoader getURLClassLoader(ScriptMetaData scriptData) {
ClassLoader parent = scriptData.getClass().getClassLoader();
URL[] classPath = scriptData.getClassPath();
LogUtils.DEBUG("Classpath has length " + classPath.length);
@@ -45,7 +45,7 @@ public class ClassLoaderFactory {
return getURLClassLoader(parent, classPath);
}
- public static URLClassLoader getURLClassLoader(final ClassLoader parent,
+ public static ClassLoader getURLClassLoader(final ClassLoader parent,
final URL[] classpath) {
return AccessController.doPrivileged(
new PrivilegedAction<URLClassLoader>() {
diff --git a/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java b/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java
index 63dc3169f759..eeea0d49ebe5 100644
--- a/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java
+++ b/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java
@@ -45,8 +45,6 @@ import com.sun.star.uno.Any;
import com.sun.star.uno.Type;
import com.sun.star.uno.XComponentContext;
-import java.io.IOException;
-import java.net.URLClassLoader;
import java.util.ArrayList;
public class ScriptProviderForJava {
@@ -184,63 +182,56 @@ class ScriptImpl implements XScript {
ScriptDescriptor scriptDesc =
new ScriptDescriptor(metaData.getLanguageName());
+ LogUtils.DEBUG("Classloader starting...");
+
+ ClassLoader scriptLoader =
+ ClassLoaderFactory.getURLClassLoader(metaData);
+
+ LogUtils.DEBUG("Classloader finished...");
+
+ ArrayList<Object> invocationArgList = new ArrayList<Object>();
Object[] invocationArgs = null;
- ScriptProxy script = null;
- LogUtils.DEBUG("Classloader starting...");
+ LogUtils.DEBUG("Parameter Mapping...");
- try (URLClassLoader scriptLoader = ClassLoaderFactory.getURLClassLoader(metaData)) {
- LogUtils.DEBUG("Classloader finished...");
+ // Setup Context Object
+ XScriptContext xSc =
+ ScriptContext.createContext(m_xModel, m_xInvocContext,
+ m_xContext, m_xMultiComponentFactory);
- ArrayList<Object> invocationArgList = new ArrayList<Object>();
+ scriptDesc.addArgumentType(XScriptContext.class);
+ invocationArgList.add(xSc);
- LogUtils.DEBUG("Parameter Mapping...");
+ for (int i = 0; i < params.length; i++) {
+ scriptDesc.addArgumentType(params[ i ].getClass());
+ invocationArgList.add(params[ i ]);
+ }
- // Setup Context Object
- XScriptContext xSc =
- ScriptContext.createContext(m_xModel, m_xInvocContext,
- m_xContext, m_xMultiComponentFactory);
+ if (!invocationArgList.isEmpty()) {
+ invocationArgs = invocationArgList.toArray();
+ }
- scriptDesc.addArgumentType(XScriptContext.class);
- invocationArgList.add(xSc);
+ LogUtils.DEBUG("ScriptProxy starting... ");
+ ScriptProxy script = null;
- for (int i = 0; i < params.length; i++) {
- scriptDesc.addArgumentType(params[ i ].getClass());
- invocationArgList.add(params[ i ]);
- }
+ try {
- if (!invocationArgList.isEmpty()) {
- invocationArgs = invocationArgList.toArray();
- }
+ String className = metaData.getLanguageName().substring(0,
+ metaData.getLanguageName().lastIndexOf('.'));
- LogUtils.DEBUG("ScriptProxy starting... ");
+ LogUtils.DEBUG("About to load Class " + className + " starting... ");
- try {
+ long start = new java.util.Date().getTime();
+ Class<?> c = scriptLoader.loadClass(className);
+ long end = new java.util.Date().getTime();
- String className = metaData.getLanguageName().substring(0,
- metaData.getLanguageName().lastIndexOf('.'));
-
- LogUtils.DEBUG("About to load Class " + className + " starting... ");
-
- long start = new java.util.Date().getTime();
- Class<?> c = scriptLoader.loadClass(className);
- long end = new java.util.Date().getTime();
-
- LogUtils.DEBUG("loadClass took: " + (end - start) + "milliseconds");
-
- try {
- LogUtils.DEBUG("class loaded ... ");
- script = m_resolutionPolicy.getProxy(scriptDesc, c);
- LogUtils.DEBUG("script resolved ... ");
- } catch (NoSuchMethodException e) {
- // Framework error
- ScriptFrameworkErrorException e2 = new ScriptFrameworkErrorException(
- e.toString(), null, metaData.getLanguageName(),
- metaData.getLanguage(), ScriptFrameworkErrorType.NO_SUCH_SCRIPT);
- e2.initCause(e);
- throw e2;
- }
- } catch (ClassNotFoundException e) {
+ LogUtils.DEBUG("loadClass took: " + (end - start) + "milliseconds");
+
+ try {
+ LogUtils.DEBUG("class loaded ... ");
+ script = m_resolutionPolicy.getProxy(scriptDesc, c);
+ LogUtils.DEBUG("script resolved ... ");
+ } catch (NoSuchMethodException e) {
// Framework error
ScriptFrameworkErrorException e2 = new ScriptFrameworkErrorException(
e.toString(), null, metaData.getLanguageName(),
@@ -248,11 +239,11 @@ class ScriptImpl implements XScript {
e2.initCause(e);
throw e2;
}
- } catch (IOException e) {
+ } catch (ClassNotFoundException e) {
// Framework error
ScriptFrameworkErrorException e2 = new ScriptFrameworkErrorException(
- e.toString(), null, metaData.getLanguageName(), metaData.getLanguage(),
- ScriptFrameworkErrorType.NO_SUCH_SCRIPT);
+ e.toString(), null, metaData.getLanguageName(),
+ metaData.getLanguage(), ScriptFrameworkErrorType.NO_SUCH_SCRIPT);
e2.initCause(e);
throw e2;
}