[SCM] LibreOffice packaging repository branch, ubuntu-precise-3.5, updated. libreoffice_3.5.2_rc2-1-164-g10e447e
The following commit has been merged in the ubuntu-precise-3.5 branch:
commit 059dbdf8273919e0ad6dad378e5896807717e386
Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
Date: Wed Jan 9 14:45:10 2013 +0100
lp#1097744: Load Java scripts with class loaders
diff --git a/changelog b/changelog
index 3cfe33e..55f18ce 100644
--- a/changelog
+++ b/changelog
@@ -13,6 +13,7 @@ libreoffice (1:3.5.7-0ubuntu3) UNRELEASED; urgency=low
* backport a11y: call doShow after we have a valid view (LP: #1097722)
* backport Clipboard must be disposed before Selection (LP: #1097727)
* backport fix default hori/vert frame anchor during RTF import (LP: #1097735)
+ * backport Load Java scripts with class loaders (LP: #1097744)
-- Bjoern Michaelsen <bjoern.michaelsen@canonical.com> Tue, 08 Jan 2013 17:09:36 +0100
diff --git a/patches/lp-1097744-fdo-49517-Revert-fdo-46102-Load-Java-scripts-with-cl.diff b/patches/lp-1097744-fdo-49517-Revert-fdo-46102-Load-Java-scripts-with-cl.diff
new file mode 100644
index 0000000..40595fa
--- /dev/null
+++ b/patches/lp-1097744-fdo-49517-Revert-fdo-46102-Load-Java-scripts-with-cl.diff
@@ -0,0 +1,223 @@
+From fce3a57779fa4e776f36b7c1a0fc67ab392c8f3c Mon Sep 17 00:00:00 2001
+From: Stephan Bergmann <sbergman@redhat.com>
+Date: Fri, 26 Oct 2012 16:22:16 +0200
+Subject: [PATCH 07/14] fdo#49517: Revert "fdo#46102: Load Java scripts with
+ class loaders [...]"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit dd6c4f4db1d62268d73e09ae52d23f760a967dcc "fdo#46102: Load
+Java scripts with class loaders that actually find them." That commit broke
+support for macros embedded in documents (as
+new java.net.URL("vnd.sun.star.tdoc:...") throws a MalformedURLExcetpion), and
+it looks like that commit was not necessary after all -- or rather that what it
+tried to work around must have been some other problem that has been fixed
+meanwhile. "It is unclear to me how the Java script provider shall ever have
+found the script jars in the past" indicates that something must have been
+fishy, and what I failed to notice back then is that createURL creates
+java.net.URL instances with a UCBStreamHandler that does allow to obtain content
+from weird-looking URLs.
+
+Anyway, with that reverted, all three following scenarios work on both current
+master (towards LO 3.7) and libreoffice-3-6 (towards LO 3.6.4); I haven't yet
+come around to test on libreoffice-3-5:
+
+1 Stock macros, "Tools - Macros - Run Macro... - LibreOffice Macros -
+HelloWorld", running all of the four "helloworld.bsh", "helloworld.js",
+"HelloWorldPyhton", and
+"org.libreoffice.example.java_scripts.HelloWorld.printHW".
+
+2 Per-document macros, loading test.odt attached to fdo#49517, then "Tools -
+Macros - Run Macro... - test.odt - HelloWorld", running
+"org.libreoffice.example.java_scripts.HelloWorld.printHW".
+
+3 Extension macros, installing ScriptDispatch.oxt attached to fdo#46012 as
+shared extension, then loading StartScriptDispatch.odt attached to fdo#46012 and
+pressing the "Start Java via ScriptProvider" button.
+
+Change-Id: I31cd16b3720ffeb1058722d4d1fdffb773f8a067
+(cherry picked from commit 7ea7fb009ddcfb0723e88ba0c5778b5fdbe2b553)
+Reviewed-on: https://gerrit.libreoffice.org/922
+Reviewed-by: Caolán McNamara <caolanm@redhat.com>
+Tested-by: Caolán McNamara <caolanm@redhat.com>
+---
+ .../script/framework/container/ScriptMetaData.java | 46 ++------------------
+ .../framework/provider/ClassLoaderFactory.java | 6 +--
+ .../beanshell/ScriptEditorForBeanShell.java | 3 +-
+ .../beanshell/ScriptProviderForBeanShell.java | 3 +-
+ .../provider/java/ScriptProviderForJava.java | 2 +-
+ .../javascript/ScriptProviderForJavaScript.java | 3 +-
+ 6 files changed, 9 insertions(+), 54 deletions(-)
+
+diff --git a/scripting/java/com/sun/star/script/framework/container/ScriptMetaData.java b/scripting/java/com/sun/star/script/framework/container/ScriptMetaData.java
+index 178f480..1cf99d7 100755
+--- a/scripting/java/com/sun/star/script/framework/container/ScriptMetaData.java
++++ b/scripting/java/com/sun/star/script/framework/container/ScriptMetaData.java
+@@ -50,14 +50,7 @@ import com.sun.star.script.framework.io.UCBStreamHandler;
+
+ import com.sun.star.ucb.XSimpleFileAccess2;
+
+-import com.sun.star.uno.AnyConverter;
+ import com.sun.star.uno.UnoRuntime;
+-import com.sun.star.uno.XComponentContext;
+-
+-import com.sun.star.uri.UriReferenceFactory;
+-import com.sun.star.uri.XVndSunStarExpandUrl;
+-
+-import com.sun.star.util.XMacroExpander;
+
+ public class ScriptMetaData extends ScriptEntry implements Cloneable {
+ private boolean hasSource = false;
+@@ -253,8 +246,7 @@ public class ScriptMetaData extends ScriptEntry implements Cloneable {
+ return "\nParcelLocation = " + getParcelLocation() + "\nLocationPlaceHolder = " + locationPlaceHolder + super.toString();
+ }
+
+- public URL[] getClassPath(XComponentContext context)
+- throws java.net.MalformedURLException
++ public URL[] getClassPath() throws java.net.MalformedURLException
+ {
+ try
+ {
+@@ -282,7 +274,7 @@ public class ScriptMetaData extends ScriptEntry implements Cloneable {
+ {
+ String relativeClasspath = (String)stk.nextElement();
+ String pathToProcess = PathUtils.make_url( parcelPath, relativeClasspath);
+- URL url = expandURL( context, pathToProcess );
++ URL url = createURL( pathToProcess );
+ if ( url != null )
+ {
+ classPathVec.add ( url );
+@@ -291,7 +283,7 @@ public class ScriptMetaData extends ScriptEntry implements Cloneable {
+ }
+ if ( classPathVec.size() == 0)
+ {
+- URL url = expandURL( context, parcelPath );
++ URL url = createURL( parcelPath );
+ if ( url != null )
+ {
+ classPathVec.add(url);
+@@ -308,38 +300,6 @@ public class ScriptMetaData extends ScriptEntry implements Cloneable {
+ }
+
+ }
+-
+- private URL expandURL(XComponentContext context, String url)
+- throws java.net.MalformedURLException
+- {
+- XVndSunStarExpandUrl exp = UnoRuntime.queryInterface(
+- XVndSunStarExpandUrl.class,
+- UriReferenceFactory.create(context).parse(url));
+- String expurl;
+- if (exp == null) {
+- expurl = url;
+- } else {
+- XMacroExpander expander;
+- try {
+- expander = (XMacroExpander) AnyConverter.toObject(
+- XMacroExpander.class,
+- context.getValueByName(
+- "/singletons/com.sun.star.util.theMacroExpander"));
+- } catch (com.sun.star.lang.IllegalArgumentException e) {
+- throw new RuntimeException(e);
+- }
+- try {
+- expurl = exp.expand(expander);
+- } catch (com.sun.star.lang.IllegalArgumentException e) {
+- java.net.MalformedURLException e2 =
+- new java.net.MalformedURLException(e.toString());
+- e2.initCause(e);
+- throw e2;
+- }
+- }
+- return new URL(expurl);
+- }
+-
+ private URL createURL( String path ) throws java.net.MalformedURLException
+ {
+ URL url = null;
+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 081204f..641ca58 100755
+--- a/scripting/java/com/sun/star/script/framework/provider/ClassLoaderFactory.java
++++ b/scripting/java/com/sun/star/script/framework/provider/ClassLoaderFactory.java
+@@ -31,7 +31,6 @@ import java.net.*;
+
+ import com.sun.star.script.framework.log.LogUtils;
+ import com.sun.star.script.framework.container.ScriptMetaData;
+-import com.sun.star.uno.XComponentContext;
+
+ /**
+ * Class Loader Factory
+@@ -43,12 +42,11 @@ public class ClassLoaderFactory
+ {
+ private ClassLoaderFactory() {}
+
+- public static ClassLoader getURLClassLoader(
+- XComponentContext context, ScriptMetaData scriptData )
++ public static ClassLoader getURLClassLoader( ScriptMetaData scriptData )
+ throws NoSuitableClassLoaderException, MalformedURLException
+ {
+ ClassLoader parent = scriptData.getClass().getClassLoader();
+- URL[] classPath = scriptData.getClassPath(context);
++ URL[] classPath = scriptData.getClassPath();
+ LogUtils.DEBUG("Classpath has length " + classPath.length );
+ for ( int i=0; i < classPath.length; i++ )
+ {
+diff --git a/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java b/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java
+index 9f6739d..cbbcfc3 100755
+--- a/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java
++++ b/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java
+@@ -202,8 +202,7 @@ public class ScriptEditorForBeanShell
+ try {
+ ClassLoader cl = null;
+ try {
+- cl = ClassLoaderFactory.getURLClassLoader(
+- context.getComponentContext(), entry );
++ cl = ClassLoaderFactory.getURLClassLoader( entry );
+ }
+ catch (Exception ignore) // TODO re-examine error handling
+ {
+diff --git a/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java b/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java
+index 22a9ea8..95c7278 100755
+--- a/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java
++++ b/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java
+@@ -196,8 +196,7 @@ class ScriptImpl implements XScript
+ ClassLoader cl = null;
+ URL sourceUrl = null;
+ try {
+- cl = ClassLoaderFactory.getURLClassLoader(
+- m_xContext, metaData );
++ cl = ClassLoaderFactory.getURLClassLoader( metaData );
+ sourceUrl = metaData.getSourceURL();
+ }
+ catch ( java.net.MalformedURLException mfu )
+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 3f392f7..707ea05 100755
+--- a/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java
++++ b/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java
+@@ -205,7 +205,7 @@ class ScriptImpl implements XScript
+ try {
+ LogUtils.DEBUG( "Classloader starting..." );
+ scriptLoader = ClassLoaderFactory.getURLClassLoader(
+- m_xContext, metaData );
++ metaData );
+ LogUtils.DEBUG( "Classloader finished..." );
+ }
+ catch (MalformedURLException mfe )
+diff --git a/scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java b/scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java
+index 39205d4..9f04d91 100755
+--- a/scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java
++++ b/scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java
+@@ -195,8 +195,7 @@ class ScriptImpl implements XScript
+ ClassLoader cl = null;
+ URL sourceUrl = null;
+ try {
+- cl = ClassLoaderFactory.getURLClassLoader(
+- m_xContext, metaData );
++ cl = ClassLoaderFactory.getURLClassLoader( metaData );
+ sourceUrl = metaData.getSourceURL();
+ }
+ catch ( java.net.MalformedURLException mfu )
+--
+1.7.10.4
+
diff --git a/patches/series b/patches/series
index 843671c..421ac3a 100644
--- a/patches/series
+++ b/patches/series
@@ -48,3 +48,4 @@ lp-1097718-fdo-48096-possibly-also-lp-26303-lp-399765-.diff
lp-1097722-Resolves-rhbz-805743-a11y-call-doShow-after-we-have-.diff
lp-1097727-rhbz-846775-Clipboard-must-be-disposed-befo.diff
lp-1097735-fdo-48442-fix-default-hori-vert-frame-anchor-during-.diff
+lp-1097744-fdo-49517-Revert-fdo-46102-Load-Java-scripts-with-cl.diff
--
LibreOffice packaging repository
Reply to: