From d880f3fef60e8284ed1a6223bda44f386580310e Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Thu, 14 Feb 2002 16:49:39 +0000 Subject: [PATCH] Make Ant work with the AElfred parser which doesn't like to be used via SAX 1. Submitted by: Andreas Voegele git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271350 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/ProjectHelper.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/org/apache/tools/ant/ProjectHelper.java b/src/main/org/apache/tools/ant/ProjectHelper.java index 6f2b3d5aa..3c318966e 100644 --- a/src/main/org/apache/tools/ant/ProjectHelper.java +++ b/src/main/org/apache/tools/ant/ProjectHelper.java @@ -69,7 +69,7 @@ import org.xml.sax.SAXParseException; import org.xml.sax.SAXException; import org.xml.sax.DocumentHandler; import org.xml.sax.AttributeList; - +import org.xml.sax.helpers.XMLReaderAdapter; import javax.xml.parsers.SAXParserFactory; import javax.xml.parsers.SAXParser; @@ -117,7 +117,11 @@ public class ProjectHelper { try { SAXParser saxParser = getParserFactory().newSAXParser(); - parser = saxParser.getParser(); + try { + parser = saxParser.getParser(); + } catch (SAXException exc) { + parser = new XMLReaderAdapter(saxParser.getXMLReader()); + } String uri = "file:" + buildFile.getAbsolutePath().replace('\\', '/'); for (int index = uri.indexOf('#'); index != -1; index = uri.indexOf('#')) { @@ -128,7 +132,12 @@ public class ProjectHelper { inputSource = new InputSource(inputStream); inputSource.setSystemId(uri); project.log("parsing buildfile " + buildFile + " with URI = " + uri, Project.MSG_VERBOSE); - saxParser.parse(inputSource, new RootHandler()); + HandlerBase hb = new RootHandler(); + parser.setDocumentHandler(hb); + parser.setEntityResolver(hb); + parser.setErrorHandler(hb); + parser.setDTDHandler(hb); + parser.parse(inputSource); } catch(ParserConfigurationException exc) { throw new BuildException("Parser has not been configured correctly", exc);