You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by de...@apache.org on 2008/07/16 13:28:40 UTC

svn commit: r677245 - in /xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino: RhinoInterpreter.java WindowWrapper.java

Author: deweese
Date: Wed Jul 16 04:28:39 2008
New Revision: 677245

URL: http://svn.apache.org/viewvc?rev=677245&view=rev
Log:
Fixed(?) NPE when using getURL in an applet context.

Modified:
    xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/RhinoInterpreter.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/WindowWrapper.java

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/RhinoInterpreter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/RhinoInterpreter.java?rev=677245&r1=677244&r2=677245&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/RhinoInterpreter.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/RhinoInterpreter.java Wed Jul 16 04:28:39 2008
@@ -221,6 +221,7 @@
      * @see org.apache.batik.script.rhino.RhinoClassLoader
      */
     public AccessControlContext getAccessControlContext() {
+        if (rhinoClassLoader == null) return null;
         return rhinoClassLoader.getAccessControlContext();
     }
 

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/WindowWrapper.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/WindowWrapper.java?rev=677245&r1=677244&r2=677245&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/WindowWrapper.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/script/rhino/WindowWrapper.java Wed Jul 16 04:28:39 2008
@@ -175,16 +175,24 @@
             throw Context.reportRuntimeError("invalid argument count");
         }
 
-        AccessControlContext acc =
-            ((RhinoInterpreter)window.getInterpreter()).getAccessControlContext();
+        RhinoInterpreter     interp = (RhinoInterpreter)window.getInterpreter();
+        AccessControlContext acc    = interp.getAccessControlContext();
 
-        Object ret = AccessController.doPrivileged( new PrivilegedAction() {
+        PrivilegedAction pa = new PrivilegedAction() {
                 public Object run() {
                     return window.parseXML
                         ((String)Context.jsToJava(args[0], String.class),
                          (Document)Context.jsToJava(args[1], Document.class));
                 }
-            }, acc);
+            };
+
+        Object ret;
+        // If acc is null we are running in an Applet (or some other
+        // restrictive environment) so don't sweat security it's 
+        // the "Browsers" problem...
+        if (acc != null) ret = AccessController.doPrivileged(pa , acc);
+        else             ret = AccessController.doPrivileged(pa);
+
         return Context.toObject(ret, thisObj);
     }