Author: dims
Date: Mon Feb 25 09:10:16 2008
New Revision: 630938

URL: http://svn.apache.org/viewvc?rev=630938&view=rev
Log:
sorry, we should avoid calls to newInstance() as well

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?rev=630938&r1=630937&r2=630938&view=diff
==============================================================================
--- 
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
 Mon Feb 25 09:10:16 2008
@@ -43,6 +43,8 @@
 public class StAXUtils {
     private static Log log = LogFactory.getLog(StAXUtils.class);
     private static boolean isDebugEnabled = log.isDebugEnabled();
+    private static XMLInputFactory inputFactory = null;
+    private static XMLOutputFactory outputFactory = null;
 
     /**
      * Gets an XMLInputFactory instance from pool.
@@ -50,22 +52,25 @@
      * @return an XMLInputFactory instance.
      */
     public static XMLInputFactory getXMLInputFactory() {
-        return (XMLInputFactory) 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();
+        if (inputFactory == null) {
+            inputFactory = (XMLInputFactory) 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;
                         }
-                        finally {
-                            
currentThread.setContextClassLoader(savedClassLoader);
-                        }
-                        return factory;
-                    }
-                });
+                    });
+        }
+        return inputFactory;
     }
 
     /**
@@ -153,24 +158,27 @@
      * @return an XMLOutputFactory instance.
      */
     public static XMLOutputFactory getXMLOutputFactory() {
-        return (XMLOutputFactory) 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();
-                            
factory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.FALSE);
+        if (outputFactory == null) {
+            outputFactory = (XMLOutputFactory) 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();
+                                
factory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.FALSE);
+                            }
+                            finally {
+                                
currentThread.setContextClassLoader(savedClassLoader);
+                            }
+                            return factory;
                         }
-                        finally {
-                            
currentThread.setContextClassLoader(savedClassLoader);
-                        }
-                        return factory;
-                    }
-                });
+                    });
+        }
+        return outputFactory;
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to