Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.9.1
-
None
Description
According to appendix B.4 of the DOM Level 3 Core specification, calling Node#lookupNamespaceURI on a Document node actually performs the lookup on the document element. This is implemented by Xerces, but the code doesn't take into account that the Document may be empty (or not have a document element). On such Document instances, the lookupNamespaceURI throws a NullPointerException.
The issue can be demonstrated using the following code:
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
System.out.println(document.lookupNamespaceURI("p"));
It is caused by the following piece of code in NodeImpl:
case Node.DOCUMENT_NODE :
{ return((NodeImpl)((Document)this).getDocumentElement()).lookupNamespaceURI(specifiedPrefix); }The issue has been observed with Xerces 2.9.1, but the code in the trunk is unchanged.