I get NPE in Xerces 1.2.1, 1.2.3, and 1.4.3 when attempting to parse the
following stripped-down test-case XML document:

<?xml version="1.0"?>
<!DOCTYPE root SYSTEM "root.dtd"
[
<!ENTITY a PUBLIC "a" "a.ent">
]>

<root/>


The "root.dtd" contains a single line:
<!ELEMENT root EMPTY>

The exact stack trace is:

java.lang.NullPointerException
    at org.apache.xerces.utils.StringPool.addSymbol(StringPool.java:349)
    at
org.apache.xerces.readers.DefaultEntityHandler.addExternalEntityDecl(Default
EntityHandler.java:226)
    at
org.apache.xerces.framework.XMLDTDScanner.scanEntityDecl(XMLDTDScanner.java:
2800)
    at
org.apache.xerces.framework.XMLDTDScanner.scanDecls(XMLDTDScanner.java:1450)
    at
org.apache.xerces.framework.XMLDTDScanner.scanDoctypeDecl(XMLDTDScanner.java
:1123)
    at
org.apache.xerces.framework.XMLDocumentScanner.scanDoctypeDecl(XMLDocumentSc
anner.java:2145)
    at
org.apache.xerces.framework.XMLDocumentScanner.access$0(XMLDocumentScanner.j
ava:2100)
    at
org.apache.xerces.framework.XMLDocumentScanner$PrologDispatcher.dispatch(XML
DocumentScanner.java:831)
    at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.
java:381)
    at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1081)

I believe the DefaultEntityHandler.addExternalEntityDecl is faulty.

As I compose documents from many entities, being unable to parse them is a
show-stopper for me. (I can't switch to other XML parser, as I use FOP, and
it works with Xerces only...)

Attila.

smime.p7s

Reply via email to