[ http://issues.apache.org/jira/browse/XALANJ-2301?page=comments#action_12447555 ] Henry Zongaro commented on XALANJ-2301: ---------------------------------------
I had a look around, and it looks like xsl:apply-templates is the only other instruction that suffers this problem, and as John Gentilin observed, ElemApplyTemplates ends up using the ElemForEach.appendChild, so it would inherit the fix. So I think the patch will fix both problems and that those are the only two instances of the problem. > NPE in ElemTemplateElement for a ElemSort as part of an ElemForEach when > dynamically generating a Templates > ----------------------------------------------------------------------------------------------------------- > > Key: XALANJ-2301 > URL: http://issues.apache.org/jira/browse/XALANJ-2301 > Project: XalanJ2 > Issue Type: Bug > Affects Versions: 2.7 > Reporter: peter royal > Attachments: j2301.out, j2301.xml, j2301.xsl > > > The XSL fragment that created this is: > <xsl:apply-templates select="something> > <xsl:sort select="@something"/> > </xsl:apply-templates> > resulting in: > java.lang.NullPointerException > at > org.apache.xalan.templates.ElemTemplateElement.getStylesheetRoot(ElemTemplateElement.java:171) > at > org.apache.xalan.templates.ElemTemplateElement.resolvePrefixTables(ElemTemplateElement.java:1033) > at > org.apache.xalan.templates.ElemTemplateElement.compose(ElemTemplateElement.java:190) > at org.apache.xalan.templates.ElemSort.compose(ElemSort.java:333) > at org.apache.xalan.templates.ElemForEach.compose(ElemForEach.java:136) > at > org.apache.xalan.templates.ElemCallTemplate.compose(ElemCallTemplate.java:113) > at > org.apache.xalan.templates.ElemApplyTemplates.compose(ElemApplyTemplates.java:127) > at > org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:357) > at > org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:362) > at > org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:362) > at > org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:362) > at > org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:362) > at > org.apache.xalan.templates.StylesheetRoot.composeTemplates(StylesheetRoot.java:362) > at > org.apache.xalan.templates.StylesheetRoot.recompose(StylesheetRoot.java:337) > at > org.apache.xalan.processor.StylesheetHandler.endDocument(StylesheetHandler.java:468) > ... then enters my code > ... this occurs because the ElemSort has a single entry in its > m_declaredPrefixes vector, an entry for 'xsl'. > A 1-line fix to ElemForEach.java fixes this. In appendChild, when adding a > sort element, just add: > newChild.setParentElem( this ); > before returning the newChild. -- 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]
