Klaus Bertram wrote:
Sylvain Wallez wrote:

Klaus Bertram wrote:

Hi Joerg

yes I found it by debugging an action where the breakpoint was stoped twice.

So I wrote a small test sidemap with an xsp side and database actions

By request the map:aggregation match, an action in map:part add a row to the databse and then the xsp read the table entrys.
The browser show the insertred row, but the database had 2 new rows
The sitemap.log shows the complete match handling twice


After that I test the match form the part direkt with a request and it works. (1 row added)

When needed I can send you my test sides.




Some questions to help us track the problem :
- do you use a caching pipeline - if yes, does it still happen if you use a non-caching pipeline ?

Yes I had the same idea and checked both, same result


Oh, the called map:part match is in different pipeline than the map:aggregation
and I checked
<map:pipeline internal-only="true">
and
<map:pipeline>
but I tryed not the match in the same pipeline
I check it in the afternoon

checked with same result


- can you provide us the two stack trace when you hit the breakpoint ?

here are the diff from the stack (the attached file includes the complete stack) the first are invoked by: TreeProcessor.process(Environment) line: 307 the second by: TreeProcessor.process(Environment) line: 309


<first break>
>SitemapSource.<init>(ComponentManager, String, Map, Logger) line: 224
>SitemapSourceFactory.getSource(String, Map) line: 99
>SourceResolverImpl.resolveURI(String, String, Map) line: 247
>CocoonComponentManager.resolveURI(String, String, Map) line: 450
>HttpEnvironment(AbstractEnvironment).resolveURI(String, String, Map) line: 513
>HttpEnvironment(AbstractEnvironment).resolveURI(String) line: 500
>ContentAggregator.setup(SourceResolver, Map, String, Parameters) line: 322
>NonCachingProcessingPipeline(AbstractProcessingPipeline).setupPipeline(Environment) line: 378
>NonCachingProcessingPipeline(AbstractProcessingPipeline).preparePipeline(Environment) line: 505
>NonCachingProcessingPipeline(AbstractProcessingPipeline).process(Environment) line: 467
>SerializeNode.invoke(Environment, InvokeContext) line: 150
>PreparableMatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], >Environment, InvokeContext, String, Map) line: 84
>PreparableMatchNode.invoke(Environment, InvokeContext) line: 164
>PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], >Environment, InvokeContext) line: 108
>PipelineNode.invoke(Environment, InvokeContext) line: 162
>PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], >Environment, InvokeContext) line: 108
>PipelinesNode.invoke(Environment, InvokeContext) line: 162
>TreeProcessor.process(Environment, InvokeContext) line: 325
>TreeProcessor.process(Environment) line: 307
</first break>
<second break>
>SitemapSource.refresh() line: 345
>SitemapSource.getURI() line: 298
>SitemapSourceFactory.release(Source) line: 111
>SourceResolverImpl.release(Source) line: 308
>CocoonComponentManager.release(Source) line: 457
>HttpEnvironment(AbstractEnvironment).release(Source) line: 521
>ContentAggregator.recycle() line: 303
>ResourceLimitingPool.put(Poolable) line: 438
>PoolableComponentHandler.doPut(Component) line: 245
>PoolableComponentHandler(ComponentHandler).put(Component) line: 452
>ComponentsSelector(ExcaliburComponentSelector).release(Component) line: 336
>ComponentsSelector(ExtendedComponentSelector).release(Component) line: 316
>NonCachingProcessingPipeline(AbstractProcessingPipeline).recycle() line: 637
>ResourceLimitingPool.put(Poolable) line: 438
>PoolableComponentHandler.doPut(Component) line: 245
>PoolableComponentHandler(ComponentHandler).put(Component) line: 452
>ComponentsSelector(ExcaliburComponentSelector).release(Component) line: 336
>ComponentsSelector(ExtendedComponentSelector).release(Component) line: 316
>InvokeContext.dispose() line: 310
>TreeProcessor.process(Environment) line: 309
</second break>
<first breakpoint>
Thread [PoolThread-4] (Suspended (breakpoint at line 92 in DatabaseAddAction))
        DatabaseAddAction.act(Redirector, SourceResolver, Map, String, Parameters) 
line: 92
        ActTypeNode.invoke(Environment, InvokeContext) line: 133
        ActTypeNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        ActTypeNode.invoke(Environment, InvokeContext) line: 158
        ActTypeNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        ActTypeNode.invoke(Environment, InvokeContext) line: 158
        ActTypeNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        ActTypeNode.invoke(Environment, InvokeContext) line: 158
        
PreparableMatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        PreparableMatchNode.invoke(Environment, InvokeContext) line: 164
        PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelineNode.invoke(Environment, InvokeContext) line: 162
        PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelinesNode.invoke(Environment, InvokeContext) line: 162
        TreeProcessor.process(Environment, InvokeContext) line: 325
        TreeProcessor.processInternal(Environment) line: 344
        SitemapSource.init() line: 356
        SitemapSource.<init>(ComponentManager, String, Map, Logger) line: 224
        SitemapSourceFactory.getSource(String, Map) line: 99
        SourceResolverImpl.resolveURI(String, String, Map) line: 247
        CocoonComponentManager.resolveURI(String, String, Map) line: 450
        HttpEnvironment(AbstractEnvironment).resolveURI(String, String, Map) line: 513
        HttpEnvironment(AbstractEnvironment).resolveURI(String) line: 500
        ContentAggregator.setup(SourceResolver, Map, String, Parameters) line: 322
        
NonCachingProcessingPipeline(AbstractProcessingPipeline).setupPipeline(Environment) 
line: 378
        
NonCachingProcessingPipeline(AbstractProcessingPipeline).preparePipeline(Environment) 
line: 505
        NonCachingProcessingPipeline(AbstractProcessingPipeline).process(Environment) 
line: 467
        SerializeNode.invoke(Environment, InvokeContext) line: 150
        
PreparableMatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        PreparableMatchNode.invoke(Environment, InvokeContext) line: 164
        PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelineNode.invoke(Environment, InvokeContext) line: 162
        PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelinesNode.invoke(Environment, InvokeContext) line: 162
        TreeProcessor.process(Environment, InvokeContext) line: 325
        TreeProcessor.process(Environment) line: 307
        MountNode.invoke(Environment, InvokeContext) line: 133
        
PreparableMatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        PreparableMatchNode.invoke(Environment, InvokeContext) line: 164
        PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelineNode.invoke(Environment, InvokeContext) line: 162
        PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelinesNode.invoke(Environment, InvokeContext) line: 162
        TreeProcessor.process(Environment, InvokeContext) line: 325
        TreeProcessor.process(Environment) line: 307
        Cocoon.process(Environment) line: 626
        CocoonServlet.service(HttpServletRequest, HttpServletResponse) line: 1083
        CocoonServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 853
        ServletHolder.handle(ServletRequest, ServletResponse) line: 360
        WebApplicationHandler.dispatch(String, HttpServletRequest, 
HttpServletResponse, ServletHolder) line: 294
        WebApplicationHandler(ServletHandler).handle(String, String, HttpRequest, 
HttpResponse) line: 558
        WebApplicationContext(HttpContext).handle(String, String, HttpRequest, 
HttpResponse) line: 1714
        WebApplicationContext.handle(String, String, HttpRequest, HttpResponse) line: 
507
        WebApplicationContext(HttpContext).handle(HttpRequest, HttpResponse) line: 1664
        Server(HttpServer).service(HttpRequest, HttpResponse) line: 863
        HttpConnection.service(HttpRequest, HttpResponse) line: 775
        HttpConnection.handleNext() line: 939
        HttpConnection.handle() line: 792
        SocketListener.handleConnection(Socket) line: 201
        SocketListener(ThreadedServer).handle(Object) line: 289
        ThreadPool$PoolThread.run() line: 455
</first breakpoint>
<second breakpoint>
Thread [PoolThread-4] (Suspended (breakpoint at line 92 in DatabaseAddAction))
        DatabaseAddAction.act(Redirector, SourceResolver, Map, String, Parameters) 
line: 92
        ActTypeNode.invoke(Environment, InvokeContext) line: 133
        ActTypeNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        ActTypeNode.invoke(Environment, InvokeContext) line: 158
        ActTypeNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        ActTypeNode.invoke(Environment, InvokeContext) line: 158
        ActTypeNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        ActTypeNode.invoke(Environment, InvokeContext) line: 158
        
PreparableMatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        PreparableMatchNode.invoke(Environment, InvokeContext) line: 164
        PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelineNode.invoke(Environment, InvokeContext) line: 162
        PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelinesNode.invoke(Environment, InvokeContext) line: 162
        TreeProcessor.process(Environment, InvokeContext) line: 325
        TreeProcessor.processInternal(Environment) line: 344
        SitemapSource.init() line: 356
        SitemapSource.refresh() line: 345
        SitemapSource.getURI() line: 298
        SitemapSourceFactory.release(Source) line: 111
        SourceResolverImpl.release(Source) line: 308
        CocoonComponentManager.release(Source) line: 457
        HttpEnvironment(AbstractEnvironment).release(Source) line: 521
        ContentAggregator.recycle() line: 303
        ResourceLimitingPool.put(Poolable) line: 438
        PoolableComponentHandler.doPut(Component) line: 245
        PoolableComponentHandler(ComponentHandler).put(Component) line: 452
        ComponentsSelector(ExcaliburComponentSelector).release(Component) line: 336
        ComponentsSelector(ExtendedComponentSelector).release(Component) line: 316
        NonCachingProcessingPipeline(AbstractProcessingPipeline).recycle() line: 637
        ResourceLimitingPool.put(Poolable) line: 438
        PoolableComponentHandler.doPut(Component) line: 245
        PoolableComponentHandler(ComponentHandler).put(Component) line: 452
        ComponentsSelector(ExcaliburComponentSelector).release(Component) line: 336
        ComponentsSelector(ExtendedComponentSelector).release(Component) line: 316
        InvokeContext.dispose() line: 310
        TreeProcessor.process(Environment) line: 309
        MountNode.invoke(Environment, InvokeContext) line: 133
        
PreparableMatchNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext, String, Map) line: 84
        PreparableMatchNode.invoke(Environment, InvokeContext) line: 164
        PipelineNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelineNode.invoke(Environment, InvokeContext) line: 162
        PipelinesNode(AbstractParentProcessingNode).invokeNodes(ProcessingNode[], 
Environment, InvokeContext) line: 108
        PipelinesNode.invoke(Environment, InvokeContext) line: 162
        TreeProcessor.process(Environment, InvokeContext) line: 325
        TreeProcessor.process(Environment) line: 307
        Cocoon.process(Environment) line: 626
        CocoonServlet.service(HttpServletRequest, HttpServletResponse) line: 1083
        CocoonServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 853
        ServletHolder.handle(ServletRequest, ServletResponse) line: 360
        WebApplicationHandler.dispatch(String, HttpServletRequest, 
HttpServletResponse, ServletHolder) line: 294
        WebApplicationHandler(ServletHandler).handle(String, String, HttpRequest, 
HttpResponse) line: 558
        WebApplicationContext(HttpContext).handle(String, String, HttpRequest, 
HttpResponse) line: 1714
        WebApplicationContext.handle(String, String, HttpRequest, HttpResponse) line: 
507
        WebApplicationContext(HttpContext).handle(HttpRequest, HttpResponse) line: 1664
        Server(HttpServer).service(HttpRequest, HttpResponse) line: 863
        HttpConnection.service(HttpRequest, HttpResponse) line: 775
        HttpConnection.handleNext() line: 939
        HttpConnection.handle() line: 792
        SocketListener.handleConnection(Socket) line: 201
        SocketListener(ThreadedServer).handle(Object) line: 289
        ThreadPool$PoolThread.run() line: 455
</second breakpoint>

Reply via email to