You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by sc...@apache.org on 2007/04/13 21:33:05 UTC

svn commit: r528619 - /webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java

Author: scheu
Date: Fri Apr 13 12:33:04 2007
New Revision: 528619

URL: http://svn.apache.org/viewvc?view=rev&rev=528619
Log:
WSCOMMONS-192
Contributor:Rich Scheuerle
Java 2 Security change to STAXUtils.

Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java?view=diff&rev=528619&r1=528618&r2=528619
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java Fri Apr 13 12:33:04 2007
@@ -12,6 +12,8 @@
 import java.io.OutputStream;
 import java.io.Reader;
 import java.io.Writer;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -66,8 +68,22 @@
     private static final Pool xmlInputFactoryPool = new Pool(new ObjectCreator[] {
             new ObjectCreator() {
                 public Object newObject() {
-                    return XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory",
-                                                       StAXUtils.class.getClassLoader());
+                    return AccessController.doPrivileged(
+                            new PrivilegedAction() {
+                                public Object run() {
+                                    Thread currentThread = Thread.currentThread();
+                                    ClassLoader savedClassLoader = currentThread.getContextClassLoader();
+                                    XMLInputFactory factory = null;
+                                    try {
+                                        currentThread.setContextClassLoader(StAXUtils.class.getClassLoader());
+                                        factory = XMLInputFactory.newInstance();
+                                    }
+                                    finally {
+                                        currentThread.setContextClassLoader(savedClassLoader);
+                                    }
+                                    return factory; 
+                                }
+                            });
                 }
             },
             new ObjectCreator() {
@@ -80,8 +96,23 @@
     private static final Pool xmlOutputFactoryPool = new Pool(new ObjectCreator[] {
             new ObjectCreator() {
                 public Object newObject() {
-                    return XMLOutputFactory.newInstance("javax.xml.stream.XMLOutputFactory",
-                                                        StAXUtils.class.getClassLoader());
+                    return AccessController.doPrivileged(
+                            new PrivilegedAction() {
+                                public Object run() {
+                                                                       
+                                    Thread currentThread = Thread.currentThread();
+                                    ClassLoader savedClassLoader = currentThread.getContextClassLoader();
+                                    XMLOutputFactory factory = null;
+                                    try {
+                                        currentThread.setContextClassLoader(StAXUtils.class.getClassLoader());
+                                        factory = XMLOutputFactory.newInstance();
+                                    }
+                                    finally {
+                                        currentThread.setContextClassLoader(savedClassLoader);
+                                    }
+                                    return factory;
+                                }
+                            });
                 }
             },
             new ObjectCreator() {



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: commons-dev-help@ws.apache.org