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();
}
}