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.



Reply via email to