[jdom-interest] Possible bug in SAXHandler when "namespaces" feature is off

Dmitri Plotnikov dmitri at apache.org
Sat Jan 17 17:16:15 PST 2004


I've noticed that if I turn off the "namespaces" feature, JDOM fails with
the following exception:

Caused by: org.jdom.IllegalNameException: The name "" is not legal for
JDOM/XML elements: XML names cannot be null or empty.
   at org.jdom.Element.setName(Element.java:217)
   at org.jdom.Element.<init>(Element.java:145)
   at org.jdom.Element.<init>(Element.java:158)
   at org.jdom.input.DefaultJDOMFactory.element(DefaultJDOMFactory.java:137)
   at org.jdom.input.SAXHandler.startElement(SAXHandler.java:484)
   at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1637)
   at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:634)
   at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
   at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
   at org.jdom.input.SAXBuilder.build(SAXBuilder.java:370)
   at org.jdom.input.SAXBuilder.build(SAXBuilder.java:684)
   ...

The problem is in SAXHandler in this line:
    element = factory.element(localName);

In fact, the parser passes the name not through the localName parameter, but
through the qName parameter.
Thus, IMO, it should read
    element = factory.element(qName);

Am I making any sense?

Thanks,

- Dmitri




More information about the jdom-interest mailing list