You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2018/06/08 15:19:09 UTC

svn commit: r1833189 - /santuario/xml-security-java/branches/2.0.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java

Author: coheigea
Date: Fri Jun  8 15:19:09 2018
New Revision: 1833189

URL: http://svn.apache.org/viewvc?rev=1833189&view=rev
Log:
Revert "SANTUARIO-394 - Switching to use ThreadLocals instead of a thread pool"

This reverts commit c321a78f150e094165ecec0d5d09d44a917c3d55.

Modified:
    santuario/xml-security-java/branches/2.0.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java

Modified: santuario/xml-security-java/branches/2.0.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/branches/2.0.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java?rev=1833189&r1=1833188&r2=1833189&view=diff
==============================================================================
--- santuario/xml-security-java/branches/2.0.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java (original)
+++ santuario/xml-security-java/branches/2.0.x-fixes/src/main/java/org/apache/xml/security/utils/XMLUtils.java Fri Jun  8 15:19:09 2018
@@ -59,15 +59,6 @@ public final class XMLUtils {
             }
         });
 
-    @SuppressWarnings("unchecked")
-    private static final ThreadLocal<DocumentBuilder> tl[][] = new ThreadLocal[2][2];
-    static {
-        tl[0][0] = new MyThreadLocal(false, false);
-        tl[0][1] = new MyThreadLocal(false, true);
-        tl[1][0] = new MyThreadLocal(true, false);
-        tl[1][1] = new MyThreadLocal(true, true);
-    }
-
     private static volatile String dsPrefix = "ds";
     private static volatile String ds11Prefix = "dsig11";
     private static volatile String xencPrefix = "xenc";
@@ -1061,9 +1052,15 @@ public final class XMLUtils {
     public static DocumentBuilder createDocumentBuilder(
         boolean validating, boolean disAllowDocTypeDeclarations
     ) throws ParserConfigurationException {
-        DocumentBuilder documentBuilder = tl[validating ? 1 : 0][disAllowDocTypeDeclarations ? 1 : 0].get();
-        documentBuilder.reset();
-        return documentBuilder;
+        DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
+        dfactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE);
+        if (disAllowDocTypeDeclarations) {
+            dfactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
+        }
+        dfactory.setValidating(validating);        
+        dfactory.setNamespaceAware(true);
+        
+        return dfactory.newDocumentBuilder();
     }
 
     /**
@@ -1076,31 +1073,4 @@ public final class XMLUtils {
         return true;
     }
 
-    private static final class MyThreadLocal extends ThreadLocal<DocumentBuilder> {
-        private final boolean validating;
-        private final boolean disAllowDocTypeDeclarations;
-
-        public MyThreadLocal(boolean validating, boolean disAllowDocTypeDeclarations) {
-            this.validating = validating;
-            this.disAllowDocTypeDeclarations = disAllowDocTypeDeclarations;
-        }
-
-        @Override
-        protected DocumentBuilder initialValue() {
-            DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
-            try {
-                dfactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE);
-                if (disAllowDocTypeDeclarations) {
-                    dfactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
-                }
-                dfactory.setValidating(validating);
-                dfactory.setNamespaceAware(true);
-
-                return dfactory.newDocumentBuilder();
-            } catch (ParserConfigurationException e) {
-               throw new RuntimeException(e);
-            }
-        }
-    }
-
 }