http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2130 *** shadow/2130 Tue Jun 12 06:49:15 2001 --- shadow/2130.tmp.4677 Tue Jun 12 06:49:15 2001 *************** *** 0 **** --- 1,117 ---- + +============================================================================+ + | NullPointerException in TreeWalker transforming document with null Text no | + +----------------------------------------------------------------------------+ + | Bug #: 2130 Product: XalanJ2 | + | Status: NEW Version: 2.0.x | + | Resolution: Platform: All | + | Severity: Normal OS/Version: Other | + | Priority: Other Component: org.apache.xml.utils | + +----------------------------------------------------------------------------+ + | Assigned To: [EMAIL PROTECTED] | + | Reported By: [EMAIL PROTECTED] | + | CC list: Cc: | + +----------------------------------------------------------------------------+ + | URL: | + +============================================================================+ + | DESCRIPTION | + Calling createTextNode with null, e.g.: + + Text text = document.createTextNode(null); + + Causes Xalan 2.1.0 to throw a NullPointerException at + org.apache.xml.utils.TreeWalker.dispatachChars(TreeWalker.java:284) when trying + to transform a Document containing it. + + + + This code, which creates a simple Document containing a single Element with a + single "null" Text node: + + + + import javax.xml.parsers.*; + import javax.xml.transform.*; + import javax.xml.transform.dom.*; + import javax.xml.transform.stream.*; + + import org.w3c.dom.*; + + class TestXalan { + + public static void main(String[] args) throws Exception { + + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document document = builder.newDocument(); + + TransformerFactory tFactory = TransformerFactory.newInstance(); + Templates stylesheet = tFactory.newTemplates(new StreamSource(args + [0])); + + // build document with null Text node + + Element element = document.createElement("test"); + Text text = document.createTextNode(null); + + element.appendChild(text); + document.appendChild(element); + + Source source = new DOMSource(document); + Result result = new DOMResult(); + + stylesheet.newTransformer().transform(source, result); + + } + + } + + + + When this stylesheet is applied to it: + + + + <?xml version="1.0"?> + <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:template match="/"> + <xsl:copy-of select="."/> + </xsl:template> + </xsl:stylesheet> + + + + + Causes this Exception: + + + + + Exception in thread "main" javax.xml.transform.TransformerException + at org.apache.xalan.transformer.TransformerImpl.transformNode + (TransformerImpl.java:1269) + at org.apache.xalan.transformer.TransformerImpl.transform + (TransformerImpl.java:504) + at org.apache.xalan.transformer.TransformerImpl.transform + (TransformerImpl.java:1174) + at TestXalan.main(TestXalan.java:49) + --------- + java.lang.NullPointerException + at org.apache.xml.utils.TreeWalker.dispatachChars(TreeWalker.java:284) + at org.apache.xml.utils.TreeWalker.startNode(TreeWalker.java:428) + at org.apache.xalan.transformer.TreeWalker2Result.startNode + (TreeWalker2Result.java:247) + at org.apache.xml.utils.TreeWalker.traverse(TreeWalker.java:192) + at org.apache.xalan.transformer.TreeWalker2Result.traverse + (TreeWalker2Result.java:114) + at org.apache.xalan.templates.ElemCopyOf.execute(ElemCopyOf.java:202) + at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates + (TransformerImpl.java:2251) + at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode + (TransformerImpl.java:2134) + at org.apache.xalan.transformer.TransformerImpl.transformNode + (TransformerImpl.java:1246) + at org.apache.xalan.transformer.TransformerImpl.transform + (TransformerImpl.java:504) + at org.apache.xalan.transformer.TransformerImpl.transform + (TransformerImpl.java:1174) + at TestXalan.main(TestXalan.java:49) \ No newline at end of file