You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2009/02/25 15:26:55 UTC

svn commit: r747794 - /ant/ivy/core/trunk/src/java/org/apache/ivy/util/XMLHelper.java

Author: hibou
Date: Wed Feb 25 14:26:55 2009
New Revision: 747794

URL: http://svn.apache.org/viewvc?rev=747794&view=rev
Log:
IVYDE-35:
 - The sax parser factory is using the context classloader to load the xml parser, so make it instanciated in the asking thread (so in the method) rather than in the class loading (in the static blocks)

Modified:
    ant/ivy/core/trunk/src/java/org/apache/ivy/util/XMLHelper.java

Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/util/XMLHelper.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/util/XMLHelper.java?rev=747794&r1=747793&r2=747794&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/util/XMLHelper.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/util/XMLHelper.java Wed Feb 25 14:26:55 2009
@@ -39,10 +39,6 @@
 
 public abstract class XMLHelper {
 
-    private static final SAXParserFactory VALIDATING_FACTORY = SAXParserFactory.newInstance();
-
-    private static final SAXParserFactory FACTORY = SAXParserFactory.newInstance();
-
     static final String JAXP_SCHEMA_LANGUAGE 
         = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
 
@@ -58,18 +54,16 @@
 
     private static DocumentBuilder docBuilder;
     
-    static {
-        VALIDATING_FACTORY.setNamespaceAware(true);
-        VALIDATING_FACTORY.setValidating(true);
-    }
-
     private static SAXParser newSAXParser(URL schema, InputStream schemaStream)
             throws ParserConfigurationException, SAXException {
         if (!canUseSchemaValidation || schema == null) {
-            return FACTORY.newSAXParser();
+            return SAXParserFactory.newInstance().newSAXParser();
         }
         try {
-            SAXParser parser = VALIDATING_FACTORY.newSAXParser();
+            SAXParserFactory parserFactory = SAXParserFactory.newInstance();
+            parserFactory.setNamespaceAware(true);
+            parserFactory.setValidating(true);
+            SAXParser parser = parserFactory.newSAXParser();
             parser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
             parser.setProperty(JAXP_SCHEMA_SOURCE, schemaStream);
             parser.getXMLReader().setFeature(XML_NAMESPACE_PREFIXES, true);
@@ -79,7 +73,7 @@
                 "WARNING: problem while setting JAXP validating property on SAXParser... "
                 + "XML validation will not be done: " + ex.getMessage());
             canUseSchemaValidation = false;
-            return FACTORY.newSAXParser();
+            return SAXParserFactory.newInstance().newSAXParser();
         }
     }