Hi Chris, In your message, you said "Now I realise that it might seem like a strange thing to do, but I really need to be able to place xsl elements inside an xsl:comment." I'm not quite sure what you mean by that. You are allowed to use xsl:apply-templates within a comment, but the invoked templates must produce text nodes only. It would be an error to use xsl:element inside a comment, though Xalan would ignore it and just not output the element.
See the XSLT 1.0 spec, section 7.4: "It is an error if instantiating the content of xsl:comment creates nodes other than text nodes. An XSLT processor may signal the error; if it does not signal the error, it must recover by ignoring the offending nodes together with their content." (http://www.w3.org/TR/xslt#section-Creating-Comments) In any case, there should not be a NullPointerException. Please open a bug on JIRA, and try again to whittle down the stylesheet to a small example that you can share with us. I created a small stylesheet using the snippet you gave, but I didn't see any NPE with it. Kevin Cormier Software Developer, XSLT Development E-mail: [EMAIL PROTECTED] cbowditch <[EMAIL PROTECTED] otmail.com> To xalan-j-users@xml.apache.org 01/08/2007 10:17 cc AM Subject NullPointerException Hi, I have a xsl:xstylesheet that crashes in both 2.6.0 and 2.7.0 with a NPE. Heres the stack trace: javax.xml.transform.TransformerException: java.lang.NullPointerException at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2341) at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:393 ) at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate. java:247) at org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemFor Each.java:420) at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:259) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java :338) at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:287) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:393 ) at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate. java:247) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:140) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemIf.execute(ElemIf.java:161) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.transformer.TransformerImpl.transformToString(Transf ormerImpl.java:2019) at org.apache.xalan.templates.ElemComment.execute(ElemComment.java:85) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Tran sformerImpl.java:2202) at org.apache.xalan.transformer.TransformerImpl.transformNode(Transforme rImpl.java:1276) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:673) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:1192) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:1170) at org.apache.xalan.xslt.Process.main(Process.java:987) Caused by: java.lang.NullPointerException at org.apache.xml.serializer.SerializerBase.getPrefix(SerializerBase.jav a:841) at org.apache.xalan.templates.ElemAttribute.resolvePrefix(ElemAttribute. java:130) at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:240) at org.apache.xalan.templates.ElemAttribute.execute(ElemAttribute.java:1 07) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) ... 60 more --------- java.lang.NullPointerException at org.apache.xml.serializer.SerializerBase.getPrefix(SerializerBase.jav a:841) at org.apache.xalan.templates.ElemAttribute.resolvePrefix(ElemAttribute. java:130) at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:240) at org.apache.xalan.templates.ElemAttribute.execute(ElemAttribute.java:1 07) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:393 ) at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate. java:247) at org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemFor Each.java:420) at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:259) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java :338) at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:287) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemTemplate.execute(ElemTemplate.java:393 ) at org.apache.xalan.templates.ElemCallTemplate.execute(ElemCallTemplate. java:247) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:140) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemIf.execute(ElemIf.java:161) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes( ElemApplyTemplates.java:395) at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTempla tes.java:177) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.transformer.TransformerImpl.transformToString(Transf ormerImpl.java:2019) at org.apache.xalan.templates.ElemComment.execute(ElemComment.java:85) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResul t.java:682) at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Tr ansformerImpl.java:2336) at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Tran sformerImpl.java:2202) at org.apache.xalan.transformer.TransformerImpl.transformNode(Transforme rImpl.java:1276) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:673) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:1192) at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImp l.java:1170) at org.apache.xalan.xslt.Process.main(Process.java:987) I did a search in JIRA but couldn't see anything similar. It appears to be related to the following in my stylesheet: <xsl:comment> <xsl:apply-templates select="//[EMAIL PROTECTED]'coveringletter']"/> <xsl:apply-templates select="//[EMAIL PROTECTED]'statement']"/> </xsl:comment> If I comment this out then the transform doesn't throw a NPE. My XML and stylesheet are quite big and also confidential so I can't post it here. I did try creating a cut down version but the NPE didnt occur. Now I realise that it might seem like a strange thing to do, but I really need to be able to place xsl elements inside an xsl:comment. Can anyone offer any further insight? Thanks, Chris -- View this message in context: http://www.nabble.com/NullPointerException-tf2939928.html#a8219739 Sent from the Xalan - J - Users mailing list archive at Nabble.com.