question(bug) about setNodeValue

linuxman <[email protected]> Thu, 18 Sep 2003 14:25:10 +0800
Newsgroups gmane.comp.java.enhydra.xmlc
Message-ID <[email protected]>
hi,

I find that when call setNodeValue with "null", xmlc will report errors 
like below:

java.lang.NullPointerException
    at 
org.enhydra.xml.io.BaseDOMFormatter.writeText(BaseDOMFormatter.java:535)
    at 
org.enhydra.xml.io.BaseDOMFormatter.handleText(BaseDOMFormatter.java:612)
    at org.enhydra.xml.io.HTMLFormatter.handleText(HTMLFormatter.java:302)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:372)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleElement(HTMLFormatter.java:270)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:357)
    at 
org.enhydra.xml.dom.DOMTraversal.processChildren(DOMTraversal.java:255)
    at 
org.enhydra.xml.io.HTMLFormatter.handleDocument(HTMLFormatter.java:169)
    at org.enhydra.xml.dom.DOMTraversal.processNode(DOMTraversal.java:345)
    at org.enhydra.xml.dom.DOMTraversal.traverse(DOMTraversal.java:230)
    at org.enhydra.xml.io.BaseDOMFormatter.write(BaseDOMFormatter.java:721)
    at org.enhydra.xml.io.DOMFormatter.write(DOMFormatter.java:204)
    at org.enhydra.xml.io.DOMFormatter.toBytes(DOMFormatter.java:183)
    at 
org.enhydra.xml.xmlc.servlet.XMLCContext.outputDocument(XMLCContext.java:413) 

    at 
org.enhydra.xml.xmlc.servlet.XMLCContext.writeDOM(XMLCContext.java:504)

My codes like this:
....
HTMLElement ipAddr = (HTMLElement) page.getElementById(LIST_IPADDR_TAG);
ipAddr.getFirstChild().setNodeValue(current.getIpAddr()); // <-- here, 
getIpAddr() may return null
....
context.writeDOM(req, resp, page);

Accroding to api doc, setNodeVaule can accept null parameter:

The value of this node, depending on its type; see the table above. When it
 is defined to be null, setting it has no effect.

So, what happened with setNodeValue?

Thanks!

linuxman