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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to