Creating in-memory DocumentFragment with imbedded null text elements causes
Trax NPE
------------------------------------------------------------------------------------
Key: XALANJ-2265
URL: http://issues.apache.org/jira/browse/XALANJ-2265
Project: XalanJ2
Type: Bug
Components: XSLTC
Versions: 2.7
Environment: cygwin under XP, java 1.4.2_09
Reporter: Travis Winfrey
The trax library cannot handle the null text element, when a DocumentFragment
is created that has some null text nodes. In contrast, other XSLTC libraries
treat the middleName=null variation shown below as <MiddleName/>
Example code to create DocumentFragment with null text element
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Element;
public DocumentFragment createDocFragment(Document doc) throws
ParserConfigurationException, NullPointerException {
DocumentFragment docFrag = doc.createDocumentFragment();
Element person = doc.createElement("Person");
String firstName = "George";
String middleName = "";
String lastName = "Washington";
if (this.isMiddleNameNull) {
middleName = null;
}
person.appendChild(doc.createElement("FirstName")).appendChild(doc.createTextNode(firstName));
person.appendChild(doc.createElement("MiddleName")).appendChild(doc.createTextNode(middleName));
person.appendChild(doc.createElement("LastName")).appendChild(doc.createTextNode(lastName));
docFrag.appendChild(person);
return docFrag;
}
Sample xsl code to tickle bug. any of these will work .
<xsl:value-of select="/Person/MiddleName" />
<xsl:value-of select="." />
<xsl:value-of select="./*" />
One cause of the NPE is org.apache.xalan.xsltc.trax.DOM2SAX.parse routine looks
like this:
private void parse(Node node) throws IOException, SAXException {
// .. tlw omit 5 lines ...
switch (node.getNodeType()) {
// ... tlw omit 131 lines ...
case Node.TEXT_NODE:
final String data = node.getNodeValue();
_sax.characters(data.toCharArray(), 0, data.length()); // tlw:
kaboom
break;
}
}
This is $Id: DOM2SAX.java,v 1.21 2004/02/16 22:57:21 minchau Exp $
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]