Hi Attila,
This is the same problem that was reported as Bug 4026 [1]. I just posted a patch there; please try it out, and let me know if it doesn't solve your problem.
Thanks,
Henry
[1] http://nagoya.apache.org/bugzilla/show_bug.cgi?id=4026
------------------------------------------------------------------------
Henry Zongaro XML Parsers development
IBM SWS Toronto Lab Tie Line 969-6044; Phone (905) 413-6044
mailto:[EMAIL PROTECTED]
Please respond to [EMAIL PROTECTED]
To: <[EMAIL PROTECTED]>
cc:
Subject: NullPointerException when parsing entity decl in internal DTD subset
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.
