I'm attaching a sample code and input data which cause the parser (Xerces-J 2.9.1) to hang.
-- Stanimir
//package ; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; public class ParseTest { public static void main(String[] args) throws Exception { SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setValidating(false); spf.setNamespaceAware(false); spf.setFeature("http://apache.org/xml/features/" + "continue-after-fatal-error", true); XMLReader xmlReader = spf.newSAXParser() .getXMLReader(); DefaultHandler handler = new DefaultHandler() { public void warning(SAXParseException ex) { printMessage(ex, "warning"); } public void error(SAXParseException ex) { printMessage(ex, "error"); } public void fatalError(SAXParseException ex) { printMessage(ex, "fatalError"); // and continue } private void printMessage(SAXParseException ex, String type) { StringBuffer msg = new StringBuffer() .append('[').append(type).append(']').append(' '); String id = ex.getSystemId(); if (id != null) { msg.append(id).append(':'); } msg.append(ex.getLineNumber()).append(':') .append(ex.getColumnNumber()).append(':') .append(' ').append(ex.getMessage()); System.err.println(msg); } }; xmlReader.setContentHandler(handler); xmlReader.setErrorHandler(handler); InputSource source = new InputSource(ParseTest.class .getResource("foo.xml").toExternalForm()); Thread.currentThread().setPriority(Thread.MIN_PRIORITY); xmlReader.parse(source); System.out.println("Done."); } }
<?xml version="1.0" encoding="US-ASCII" ?> <!DOCTYPE foo SYSTEM "foo.dtd"> <foo bar=" cen	ter " />
foo.dtd
Description: application/xml-dtd
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]