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

Bradley S. Huffman hip at cs.okstate.edu
Sat Jan 17 18:14:33 PST 2004


"Dmitri Plotnikov" writes:

> 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?

Hmm, I'm surpised you where able to turn the "namespaces" feature off, I
thought SAXBuilder always turned on "namespaces" and "namespace-prefix".

Brad



More information about the jdom-interest mailing list