DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6386>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6386 [TreeProcessor] Nested map:select in resource malfunction Summary: [TreeProcessor] Nested map:select in resource malfunction Product: Cocoon 2 Version: Current CVS Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: sitemap components AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] In my sitemap I have a resource that contains nested map:select elements. The outer map:select has another map:select in its map:otherwise clause. The inner map:select does not have a map:otherwise clause. I found that SelectNode.setCases() is being called multiple times for the inner map:select element, it is having a map:otherwise clause being set to the outer map:otherwise clause. A stack trace on the second setCases() call is included below. My modifications to SelectNode.setCases() are simple, keep a private boolean indicating if the method has been called before and throw the exception on a subsequent attempt. Original exception : java.lang.IllegalStateException: setCases() can only be called a single time at org.apache.cocoon.treeprocessor.sitemap.SelectNode.setCases(SelectNode.java:118) at org.apache.cocoon.treeprocessor.sitemap.SelectNodeBuilder.buildNode(SelectNodeBuilder.java:134) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNodeBuilder.buildChildNodesList(AbstractParentProcessingNodeBuilder.java:160) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNodeBuilder.buildChildNodes(AbstractParentProcessingNodeBuilder.java:176) at org.apache.cocoon.treeprocessor.ContainerNodeBuilder.setupNode(ContainerNodeBuilder.java:90) at org.apache.cocoon.treeprocessor.NamedContainerNodeBuilder.buildNode(NamedContainerNodeBuilder.java:81) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNodeBuilder.buildChildNodesList(AbstractParentProcessingNodeBuilder.java:160) at org.apache.cocoon.treeprocessor.CategoryNodeBuilder.buildNode(CategoryNodeBuilder.java:103) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNodeBuilder.buildChildNodesList(AbstractParentProcessingNodeBuilder.java:160) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNodeBuilder.buildChildNodes(AbstractParentProcessingNodeBuilder.java:176) at org.apache.cocoon.treeprocessor.sitemap.SitemapNodeBuilder.access$0(SitemapNodeBuilder.java) at org.apache.cocoon.treeprocessor.sitemap.SitemapNodeBuilder.buildNode(SitemapNodeBuilder.java:81) at org.apache.cocoon.treeprocessor.TreeBuilder.createTree(TreeBuilder.java:357) at org.apache.cocoon.treeprocessor.TreeBuilder.build(TreeBuilder.java:403) at org.apache.cocoon.treeprocessor.TreeProcessor.setupRootNode(TreeProcessor.java:408) at org.apache.cocoon.treeprocessor.TreeProcessor.process(TreeProcessor.java:356) at org.apache.cocoon.treeprocessor.TreeProcessor.process(TreeProcessor.java:328) at org.apache.cocoon.treeprocessor.sitemap.MountNode.invoke(MountNode.java:136) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:88) at org.apache.cocoon.treeprocessor.sitemap.PreparableMatchNode.access$2(PreparableMatchNode.java) at org.apache.cocoon.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:161) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:88) at org.apache.cocoon.treeprocessor.sitemap.ActTypeNode.access$4(ActTypeNode.java) at org.apache.cocoon.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:155) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:88) at org.apache.cocoon.treeprocessor.sitemap.PreparableMatchNode.access$2(PreparableMatchNode.java) at org.apache.cocoon.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:161) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:110) at org.apache.cocoon.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:145) at org.apache.cocoon.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:110) at org.apache.cocoon.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:142) at org.apache.cocoon.treeprocessor.TreeProcessor.process(TreeProcessor.java:358) at org.apache.cocoon.treeprocessor.TreeProcessor.process(TreeProcessor.java:328) at org.apache.cocoon.Cocoon.process(Cocoon.java:573) at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:850) 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.access$0(ApplicationFilterChain.java:197) at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http10.HttpProcessor.process(HttpProcessor.java:666) at org.apache.catalina.connector.http10.HttpProcessor.run(HttpProcessor.java:788) at java.lang.Thread.run(Thread.java:484) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]