Uploaded image for project: 'Xerces2-J'
  1. Xerces2-J
  2. XERCESJ-1582

Node prefix/namespace query methods throw an NPE on a document without a document element

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 2.9.1
    • 2.12.0
    • DOM (Level 3 Core)
    • 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.

      Attachments

        Activity

          People

            mrglavas@ca.ibm.com Michael Glavassevich
            veithen Andreas Veithen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: