You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by "Nils Kaiser (JIRA)" <ji...@apache.org> on 2006/07/17 12:19:15 UTC
[jira] Commented: (COCOON-831) XSLTC doesn't work with nodeset
functions
[ http://issues.apache.org/jira/browse/COCOON-831?page=comments#action_12421572 ]
Nils Kaiser commented on COCOON-831:
------------------------------------
The NullPointerException still occurs with cocoon 2.1.8. I tested it under 1.4.2_08 and 1.5.0_05)
Here the xsl I used to test the nodeset function:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="rtf">
<docelem>
<elem1>elem1</elem1>
<elem2>elem2</elem2>
</docelem>
</xsl:variable>
<xsl:template match="/">
<xsl:value-of select="nodeset($rtf)/docelem/elem1"/>
</xsl:template>
</xsl:stylesheet>
The TraxTransformer from cocoon does not give any useful stacktrace (I removed the sitemap exception):
...
Caused by: org.apache.commons.lang.exception.NestableRuntimeException: javax.xml.transform.TransformerException
at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:603)
at org.apache.cocoon.generation.ProfilerGenerator.generate(ProfilerGenerator.java:179)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:578)
... 39 more
Caused by: javax.xml.transform.TransformerException
at org.apache.xalan.xsltc.trax.TransformerImpl.postErrorToListener(TransformerImpl.java:693)
at org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:636)
at org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:301)
at org.apache.xalan.xsltc.trax.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:238)
at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:55)
at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:585)
... 41 more
We also have a custom xslt transformer which uses the excalibur XsltProcessorImpl also used by TraxTransformer, and this gives us a more useful stacktrace (I removed the sitemap exception):
...
Caused by: javax.xml.transform.TransformerException: java.lang.NullPointerException
at org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:637)
at org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:301)
at org.apache.xalan.xsltc.trax.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:238)
... 71 more
Caused by: java.lang.NullPointerException
at org.apache.xalan.xsltc.dom.MultiDOM$AxisIterator.setStartNode(MultiDOM.java:96)
at org.apache.xalan.xsltc.dom.StepIterator.setStartNode(StepIterator.java:91)
at org.apache.xalan.xsltc.dom.StepIterator.setStartNode(StepIterator.java:95)
at org.apache.xalan.xsltc.dom.DupFilterIterator.setStartNode(DupFilterIterator.java:93)
at nodeset.applyTemplates()
at nodeset.transform()
at org.apache.xalan.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:593)
at org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:630)
... 73 more
> XSLTC doesn't work with nodeset functions
> -----------------------------------------
>
> Key: COCOON-831
> URL: http://issues.apache.org/jira/browse/COCOON-831
> Project: Cocoon
> Issue Type: Bug
> Components: - Components: Sitemap
> Affects Versions: 2.1
> Environment: Operating System: other
> Platform: Other
> Reporter: Peter Broschwitz
> Assigned To: Cocoon Developers Team
>
> we are using cocoon 2.1 with xsltc (version 1.4, xalan 2.5.0) as default
> transformer. Now we want to use the xalan or exslt nodeset function, but
> this is only possible with xalan xslt.
> For testing purposes we tried a simple nodeset transformation from the
> command line. We did that with the same libraries as cocoon, like:
> $>java -Djava.endorsed.dirs=<path/to/endorsed/directory>
> org.apache.xalan.xsltc.cmdline.Transform -x node-set-test.xml node_set_test
> That way, the transformation succeeds. (Compilation before suceeded also, of
> course.)
> Trying to process this stylesheet within the cocoon pipeline throws a null
> pointer exception without any entries in the cocoon-log-files. Changing to
> xalan-xslt the transformation works without any problems.
> The stylesheet we used is from the xsltc-documentation:
> ==============================================
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xsltc-extension="http://xml.apache.org/xalan/xsltc"
> xmlns:xalan="http://xml.apache.org/xalan"
> xmlns:exslt="http://exslt.org/common"
> version="1.0">
> <xsl:template match="/">
> <xsl:variable name="rtf">
> <docelem>
> <elem1>elem1 gefunden!</elem1>
> <elem2>elem2 gefunden!</elem2>
> </docelem>
> </xsl:variable>
> <!-- Use nodeset as an XSLTC extension function -->
> <xsl:value-of select="xsltc-extension:nodeset($rtf)/docelem/elem1"/>
> <!-- Use nodeset as a Xalan-Java extension function -->
> <xsl:value-of select="xalan:nodeset($rtf)/docelem/elem1"/>
> <!-- Use nodeset as an EXSLT extension function -->
> <xsl:value-of select="exslt:node-set($rtf)/docelem/elem1"/>
> <!-- Use nodeset as standard function -->
> <xsl:value-of select="nodeset($rtf)/docelem/elem1"/>
> </xsl:template>
> </xsl:stylesheet>
> ==============================================
> I should add, that none of these nodeset-functions worked, i tested every one
> of his one and commented out the others.
> I posted this message already to the cocoon-user-list, and this behaviour could
> be reproduced by others.
> Peter
--
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