[ 
http://issues.apache.org/jira/browse/COCOON-1939?page=comments#action_12445172 
] 
            
Alexander Klimetschek commented on COCOON-1939:
-----------------------------------------------

The cocoon:/ protocol is not the problem. Now block:super: fails in one case. I 
have block A <-- super <-- B. Now B calls super, then A calls block:/foo, this 
is handled by B (which has a foo-matcher), which in turn wants to call 
block:super:/dforms-model-directory.xml, which fails. So it goes up, down and 
the follwing up does not work.

The simplified and annotated stacktrace:

javax.servlet.ServletException: No dispatcher for 
block:super:/dforms-model-directory.xml
        at 
org.apache.cocoon.blocks.BlockConnection.getInputStream(BlockConnection.java:114)
        at 
org.apache.cocoon.blocks.components.BlockSource.getInputStream(BlockSource.java:51)
        at 
org.apache.cocoon.components.source.SourceUtil.getInputSource(SourceUtil.java:462)
        at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:298)
        at 
org.apache.cocoon.sitemap.DefaultContentAggregator.generate(DefaultContentAggregator.java:123)
        (Block B)
        ...
        at 
org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.blocks.BlockContext$PathDispatcher.forward(BlockContext.java:436)
        at 
org.apache.cocoon.blocks.BlockConnection.getInputStream(BlockConnection.java:115)
        at 
org.apache.cocoon.blocks.components.BlockSource.getInputStream(BlockSource.java:51)
        at 
org.apache.cocoon.components.source.SourceUtil.getInputSource(SourceUtil.java:462)
        at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:298)
        at 
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
        (Block A)
        ...
        at 
org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.blocks.BlockContext$PathDispatcher.forward(BlockContext.java:436)
        at 
org.apache.cocoon.blocks.BlockContext$NamedDispatcher.forward(BlockContext.java:394)
        at 
org.apache.cocoon.blocks.BlockConnection.getInputStream(BlockConnection.java:115)
        at 
org.apache.cocoon.blocks.components.BlockSource.getInputStream(BlockSource.java:51)
        at 
org.apache.cocoon.components.source.SourceUtil.getInputSource(SourceUtil.java:462)
        at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:298)
        at 
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
        (Block B)
        ...
        at 
org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.blocks.BlockContext$PathDispatcher.forward(BlockContext.java:436)
        at org.apache.cocoon.blocks.BlockServlet.service(BlockServlet.java:125)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.blocks.DispatcherServlet.service(DispatcherServlet.java:124)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.bootstrap.servlet.ShieldingServlet.service(ShieldingServlet.java:106)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:443)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1050)
        at 
org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:104)
        at 
org.apache.cocoon.bootstrap.servlet.ShieldingServletFilter.doFilter(ShieldingServletFilter.java:50)
        ...

The full stacktrace:

javax.servlet.ServletException: No dispatcher for 
block:super:/dforms-model-directory.xml
        at 
org.apache.cocoon.blocks.BlockConnection.getInputStream(BlockConnection.java:114)
        at 
org.apache.cocoon.blocks.components.BlockSource.getInputStream(BlockSource.java:51)
        at 
org.apache.cocoon.components.source.SourceUtil.getInputSource(SourceUtil.java:462)
        at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:298)
        at 
org.apache.cocoon.sitemap.DefaultContentAggregator.generate(DefaultContentAggregator.java:123)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy11.generate(Unknown Source)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:537)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:437)
        at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy2.process(Unknown Source)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:134)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:152)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:170)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:228)
        at 
org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.blocks.BlockContext$PathDispatcher.forward(BlockContext.java:436)
        at 
org.apache.cocoon.blocks.BlockConnection.getInputStream(BlockConnection.java:115)
        at 
org.apache.cocoon.blocks.components.BlockSource.getInputStream(BlockSource.java:51)
        at 
org.apache.cocoon.components.source.SourceUtil.getInputSource(SourceUtil.java:462)
        at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:298)
        at 
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
        at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy3.generate(Unknown Source)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:537)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:722)
        at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy2.process(Unknown Source)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:344)
        at 
org.apache.cocoon.components.source.SourceUtil.toSAX(SourceUtil.java:97)
        at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:293)
        at 
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
        at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy3.generate(Unknown Source)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:537)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:722)
        at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy2.process(Unknown Source)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:344)
        at 
org.apache.cocoon.components.source.SourceUtil.toSAX(SourceUtil.java:97)
        at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:293)
        at 
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
        at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy3.generate(Unknown Source)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:537)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:437)
        at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy2.process(Unknown Source)
        at 
org.apache.cocoon.components.source.impl.SitemapSource.getInputStream(SitemapSource.java:198)
        at 
org.apache.cocoon.reading.ResourceReader.generate(ResourceReader.java:329)
        at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy8.generate(Unknown Source)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processReader(AbstractProcessingPipeline.java:649)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:429)
        at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy2.process(Unknown Source)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.ReadNode.invoke(ReadNode.java:95)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:152)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:170)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:228)
        at 
org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.blocks.BlockContext$PathDispatcher.forward(BlockContext.java:436)
        at 
org.apache.cocoon.blocks.BlockContext$NamedDispatcher.forward(BlockContext.java:394)
        at 
org.apache.cocoon.blocks.BlockConnection.getInputStream(BlockConnection.java:115)
        at 
org.apache.cocoon.blocks.components.BlockSource.getInputStream(BlockSource.java:51)
        at 
org.apache.cocoon.components.source.SourceUtil.getInputSource(SourceUtil.java:462)
        at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:298)
        at 
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:116)
        at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy3.generate(Unknown Source)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:537)
        at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:437)
        at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.cocoon.core.container.spring.avalon.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:349)
        at $Proxy2.process(Unknown Source)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:134)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.SwitchSelectNode.invoke(SwitchSelectNode.java:88)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
        at 
org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:37)
        at 
org.apache.cocoon.components.treeprocessor.CategoryNode.invokeByName(CategoryNode.java:65)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:83)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:55)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.MatchNode.invoke(MatchNode.java:87)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:152)
        at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:77)
        at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:93)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:239)
        at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:170)
        at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:228)
        at 
org.apache.cocoon.sitemap.SitemapServlet.service(SitemapServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.blocks.BlockContext$PathDispatcher.forward(BlockContext.java:436)
        at org.apache.cocoon.blocks.BlockServlet.service(BlockServlet.java:125)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.blocks.DispatcherServlet.service(DispatcherServlet.java:124)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.cocoon.bootstrap.servlet.ShieldingServlet.service(ShieldingServlet.java:106)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:443)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1050)
        at 
org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.java:104)
        at 
org.apache.cocoon.bootstrap.servlet.ShieldingServletFilter.doFilter(ShieldingServletFilter.java:50)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:354)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:226)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:615)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
        at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
        at org.mortbay.jetty.Server.handle(Server.java:269)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:678)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:492)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:199)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:339)
        at 
org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270)
        at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

> Stack overflow when inheriting from block that alread inherits from another 
> one
> -------------------------------------------------------------------------------
>
>                 Key: COCOON-1939
>                 URL: http://issues.apache.org/jira/browse/COCOON-1939
>             Project: Cocoon
>          Issue Type: Bug
>          Components: - Blocks Framework
>    Affects Versions: 2.2-dev (Current SVN)
>            Reporter: Alexander Klimetschek
>
> There are problems with the following scenario: I have one Block A, another 
> one B that has A as super-block defined and a third one C that has B as 
> super-block defined.
> The super-relation between B and A works ok, but if you start in C, then 
> forward to B, which in turn wants to forward to block A (all via the 
> block:super: protocol), a stack overflow happens. It looks like he always 
> thinks he is in C, so that block:super: from B will always get to B, thus 
> creating an endless loop.

-- 
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

        

Reply via email to