[utilities COMMIT] /java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java

noreply at shibboleth.net noreply at shibboleth.net
Fri Mar 13 20:23:29 EDT 2015


Author: putmanb
Date: Fri Mar 13 20:23:28 2015
New Revision: 777

URL: http://svn.shibboleth.net/view/utilities?rev=777&view=rev
Log:
JSPT-54: BasicParserPool is not correctly resetting builder ErrorHandler and EntityResolver on second and subsequent checkout 

Modified:
    java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java

Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java?rev=777&r1=776&r2=777&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java Fri Mar 13 20:23:28 2015
@@ -164,6 +164,7 @@
         }
 
         if (builder != null) {
+            prepareBuilder(builder);
             return new DocumentBuilderProxy(builder, this);
         }
 
@@ -520,18 +521,25 @@
         try {
             final DocumentBuilder builder = builderFactory.newDocumentBuilder();
 
-            if (entityResolver != null) {
-                builder.setEntityResolver(entityResolver);
-            }
-
-            if (errorHandler != null) {
-                builder.setErrorHandler(errorHandler);
-            }
-
             return builder;
         } catch (ParserConfigurationException e) {
             log.debug("Unable to create new document builder", e);
             throw new XMLParserException("Unable to create new document builder", e);
+        }
+    }
+    
+    /**
+     * Prepare a document builder instance for use, before returning it from a checkout call.
+     * 
+     * @param builder the document builder to prepare
+     */
+    private void prepareBuilder(@Nonnull final DocumentBuilder builder) {
+        if (entityResolver != null) {
+            builder.setEntityResolver(entityResolver);
+        }
+        
+        if (errorHandler != null) {
+            builder.setErrorHandler(errorHandler);
         }
     }
 



More information about the commits mailing list