Sylvain:
> >Hmmm...I'm running Cocoon 2.1.2 under Tomcat 4.1.27
> >
> >When I change my sitemap (it's a sub-sitemap actually, that is mounted by the
> >main sitemap), when next I access a page in the app, I get a null pointer
> >error. Shutting down Tomcat and restarting fixes this.
> >
> >Any ideas what might cause this strange behaviour? Anyone ever seen this
> >before?
>
> Can you provide a stacktrace ?
This happens even if I make a trivial change to my mounted sub-sitemap (which is
rather complex), eg. adding a space and resaving
the sitemap in Tomcat causes the null pointer exception to happen. Which does not
even change the function of the sitemap.
Here is the stack trace that I get:
ERROR (2003-11-11) 21:58.21:078 [sitemap.handled-errors] (/ssp/cms/)
Thread-9/PipelineNode:
java.lang.NullPointerException
at
org.apache.cocoon.components.ExtendedComponentSelector.release(ExtendedComponentSelector.java:323)
at
org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.dispose(SelectNode.java:169)
at
org.apache.cocoon.components.treeprocessor.TreeProcessor.disposeTree(TreeProcessor.java:544)
at
org.apache.cocoon.components.treeprocessor.TreeProcessor.setupRootNode(TreeProcessor.java:491)
at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:345)
at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:304)
at
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:130)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
at
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
at
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:163)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
at
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:161)
at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:351)
at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:304)
at org.apache.cocoon.Cocoon.process(Cocoon.java:640)
at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1104)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at
com.digitas.servlet.filter.SchwabNetpointSimulatorServletFilter.doFilter(Unknown
Source)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Unknown Source)
I'm curious as to what you think might be causing this.
My sub-sitemap mount entries look like this:
<map:match pattern="user/**">
<map:mount check-reload="true"
src="user/user.xmap"
uri-prefix="user"
reload-method="synchron"/>
</map:match>
I'm running the 2.1.2 released version of Cocoon.
Thanks for looking into this, Sylvain.
PS. I didn't bother copying the dev or user mail lists on the stack trace. Figured
that was a waste of bandwidth.
Andrzej Jan Taramina
Chaeron Corporation: Enterprise System Solutions
http://www.chaeron.com