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]