Hi,
I have the strangest bug that I can not find a sollution for. I have written a Generator that generates reports. I use a TraxTransformer to transform it to Genumeric XML and serialize it using the HSSFSerializer.
The generator works ok. When I set the view to the raw XML from the generator I get a XML file like this:
<?xml version="1.0" encoding="ISO-8859-1"?> <vr:report xmlns:vr="http://virgil.nl/todo/what/1.0"> <vr:headersection> ... </vr:headersection> <vr:datasection> ... </vr:datasection>
..etc. </vr:report>
When trying to view the XML that comes out of the TraxTransformer Cocoon hangs, it only stops when I kill my process and I get the following exceptions:
This exception is shown on the console (probably because I killed the process):
java.lang.NullPointerException
at org.apache.cocoon.components.CocoonComponentManager.release(CocoonComponentManager.java:507)
at org.apache.cocoon.environment.AbstractEnvironment.release(AbstractEnvironment.java:539)
at org.apache.cocoon.transformation.TraxTransformer.recycle(TraxTransformer.java:514)
at org.apache.avalon.excalibur.pool.ResourceLimitingPool.put(ResourceLimitingPool.java:438)
at org.apache.avalon.excalibur.component.PoolableComponentHandler.doPut(PoolableComponentHandler.java:212)
at org.apache.avalon.excalibur.component.ComponentHandler.put(ComponentHandler.java:425)
at org.apache.avalon.excalibur.component.ExcaliburComponentSelector.release(ExcaliburComponentSelector.java:305)
at org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:284)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.recycle(AbstractProcessingPipeline.java:650)
at org.apache.cocoon.components.pipeline.impl.BaseCachingProcessingPipeline.recycle(BaseCachingProcessingPipeline.java:77)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.recycle(AbstractCachingProcessingPipeline.java:948)
at org.apache.avalon.excalibur.pool.ResourceLimitingPool.put(ResourceLimitingPool.java:438)
at org.apache.avalon.excalibur.component.PoolableComponentHandler.doPut(PoolableComponentHandler.java:212)
at org.apache.avalon.excalibur.component.ComponentHandler.put(ComponentHandler.java:425)
at org.apache.avalon.excalibur.component.ExcaliburComponentSelector.release(ExcaliburComponentSelector.java:305)
at org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:284)
at org.apache.cocoon.components.treeprocessor.InvokeContext.dispose(InvokeContext.java:286)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:279)
at org.apache.cocoon.Cocoon.process(Cocoon.java:639)
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1098)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:354)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:501)
The following exception is found in the logs and is shown in the webbrowser:
org.apache.cocoon.ProcessingException: Failed to execute pipeline.: java.lang.NullPointerException
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:552)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:173)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:490)
at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
at org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:31)
at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:86)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
at org.apache.cocoon.Cocoon.process(Cocoon.java:639)
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1098)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:354)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:501)
Caused by: java.lang.NullPointerException
at org.apache.xml.dtm.ref.sax2dtm.SAX2DTM2.startElement(SAX2DTM2.java:2135)
at org.apache.xalan.xsltc.dom.SAXImpl.startElement(SAXImpl.java:915)
at org.apache.xalan.xsltc.trax.TransformerHandlerImpl.startElement(TransformerHandlerImpl.java:259)
at org.apache.cocoon.xml.AbstractXMLPipe.startElement(AbstractXMLPipe.java:95)
at nl.virgil.ec.reporting.cocoon.CocoonReportElementSerializer.startElement(CocoonReportElementSerializer.java:224)
at nl.virgil.ec.reporting.cocoon.CocoonReportElementSerializer.serialize(CocoonReportElementSerializer.java:89)
at nl.virgil.ec.reporting.cocoon.ReportXMLGenerator.generate(ReportXMLGenerator.java:79)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:545)
... 30 more
java.lang.NullPointerException
at org.apache.xml.dtm.ref.sax2dtm.SAX2DTM2.startElement(SAX2DTM2.java:2135)
at org.apache.xalan.xsltc.dom.SAXImpl.startElement(SAXImpl.java:915)
at org.apache.xalan.xsltc.trax.TransformerHandlerImpl.startElement(TransformerHandlerImpl.java:259)
at org.apache.cocoon.xml.AbstractXMLPipe.startElement(AbstractXMLPipe.java:95)
at nl.virgil.ec.reporting.cocoon.CocoonReportElementSerializer.startElement(CocoonReportElementSerializer.java:224)
at nl.virgil.ec.reporting.cocoon.CocoonReportElementSerializer.serialize(CocoonReportElementSerializer.java:89)
at nl.virgil.ec.reporting.cocoon.ReportXMLGenerator.generate(ReportXMLGenerator.java:79)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:545)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:173)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:490)
at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
at org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:31)
at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:86)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:49)
at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:126)
at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:72)
at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:101)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:336)
at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:277)
at org.apache.cocoon.Cocoon.process(Cocoon.java:639)
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1098)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:354)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:952)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:501)
Using wget I managed to store the raw XML that was served by the custom generator I have written. I used the FileGenerator to serve it and everything goes well.
First of all I tried to switch from the xslt to xsltc Transformer but this did not help. The only thing I found by searchin on sax2dtm and NullPointerException suggested that it might be that '<?xml version="1.0" encoding="ISO-8859-1"?>' might be declared somewhere in the body of the XML but this is not the case.
A diff between the two files from the generators (Custom and File) resulted in zero differences.
I have no idea how to resolve this problem. Does anybody have any clue?
I use Cocoon 2.1.5 on Solaris 9 using JDK 1.4.2-b28. -- Ivo Limmen
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
