You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Tilman Rassy <ra...@math.TU-Berlin.DE> on 2006/01/19 19:01:58 UTC

setup() called twice in one request

Hello,

we discovered that the setup() method of a custom generator is sometimes 
called twice in one request.

We saw in the logs that the following methods were called in that order:
setup
getKey
getValidity
getValidity
setup
...

This does not always happen; in fact, it seem to happens only if the generator 
is applied to a document that is an XSL stylesheet.

Is it normal that setup() is called more than once per request, or may it be a 
bug?

Can the problem be related to the caching mechanism? (The custom generator is 
cacheable; and between the two setup() calls the caching methods were called, 
see above)

Our XSL stylesheets usually include other stylesheets. As far as I know, the 
caching mechanism takes this into account. May the problem have something to 
do with that?

We use Cocoon 2.1.3 and Tomcat 4.1.27 under Linux.

Thanks in advance,

Tilman Rassy



Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
On Friday 20 January 2006 10:34, Carsten Ziegeler wrote:
> Tilman Rassy wrote:
> > I think we can change our code so that multiple setup() calls are not a
> > problem any longer. The reasons why I posted anyway are: If there is a
> > bug, the Cocoon developers might want to know about it. Secondly, we do a
> > lot of Cocoon programming in our project, and it would be easier for my
> > collegues and me if we knew the exact rules that apply to the setup()
> > calls.
>
> Yes, you're right: now, the contract is that setup() is only called once
> per request per component instance in the pipeline. So, if you have a
> pipeline with one generator, one transformer and one serializer, setup()
> is called once on the generator, once on the transformer and once on the
> serializer (per request for this pipeline).
> Now, if you happen to have the same transformer twice in the pipeline,
> like applying two xslts, then of course setup is called twice for the
> xslt transformer but on two different instances/objects.

Thank you very mutch for these explanations.

Unfortunately, I'm quite sure that the two setup() calls are from the same 
instance and in the same request. We can see that very clearly in the logs. I 
included an excerpt from the logs in my reply to the mail from Joerg Heinicke 
in this matter. You will find further explanations there, too. If you are 
interested in my problem further on, please look there.

Best regards,
Tilman Rassy

Re: setup() called twice in one request

Posted by Carsten Ziegeler <cz...@apache.org>.
Tilman Rassy wrote:
> I think we can change our code so that multiple setup() calls are not a 
> problem any longer. The reasons why I posted anyway are: If there is a bug, 
> the Cocoon developers might want to know about it. Secondly, we do a lot of 
> Cocoon programming in our project, and it would be easier for my collegues 
> and me if we knew the exact rules that apply to the setup() calls.
> 
Yes, you're right: now, the contract is that setup() is only called once
per request per component instance in the pipeline. So, if you have a
pipeline with one generator, one transformer and one serializer, setup()
is called once on the generator, once on the transformer and once on the
serializer (per request for this pipeline).
Now, if you happen to have the same transformer twice in the pipeline,
like applying two xslts, then of course setup is called twice for the
xslt transformer but on two different instances/objects.

Carsten
-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
On Thursday 19 January 2006 19:13, Jean-Baptiste Quenot wrote:
> * Tilman Rassy:
> > we discovered that  the setup() method of a  custom generator is
> > sometimes called twice in one request.
>
> Hello,
>
> Assuming it is  the case, why is it a  problem?  Can you elaborate
> on that?

Thank you for the quick reply.

I think we can change our code so that multiple setup() calls are not a 
problem any longer. The reasons why I posted anyway are: If there is a bug, 
the Cocoon developers might want to know about it. Secondly, we do a lot of 
Cocoon programming in our project, and it would be easier for my collegues 
and me if we knew the exact rules that apply to the setup() calls.

Best regards,
Tilman Rassy



Re: setup() called twice in one request

Posted by Jean-Baptiste Quenot <jb...@apache.org>.
* Tilman Rassy:

> we discovered that  the setup() method of a  custom generator is
> sometimes called twice in one request.

Hello,

Assuming it is  the case, why is it a  problem?  Can you elaborate
on that?
-- 
Jean-Baptiste Quenot
http://caraldi.com/jbq/

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
Hello,

On Wednesday 25 January 2006 16:22, Carsten Ziegeler wrote:
> We have fixed several problems/bugs in the sitemap source and pipeline
> implementations after the 2.1.3 release. So I think the best thing for
> you is to test your test case with the most recent version (2.1.8) and
> see if this problem still exists.

Good news: It seems that the problem does not occur with Cocoon 2.1.8! At 
least I did not notice any double setup() calls yet, whereas in similar tests 
with Cocoon 2.1.3 I noticed them.

Thank you all for your help, and sorry for bothering you with a problem that 
has already been fixed in the current version!

Best regards,
Tilman


Re: setup() called twice in one request

Posted by Carsten Ziegeler <cz...@apache.org>.
We have fixed several problems/bugs in the sitemap source and pipeline
implementations after the 2.1.3 release. So I think the best thing for
you is to test your test case with the most recent version (2.1.8) and
see if this problem still exists.

Carsten
Ralph Goers wrote:
> OK. I have no idea how to get the source for xmlutil-1.0-dev.  I was 
> looking at the current source and the 2.1.7 source (the oldest I have) 
> and it looks to me that if there is a problem it is most likely in 
> XSLTProcessorImpl.  However, I'd suggest you look at SitemapSource and 
> AbstractProcessingPipeline in your source and see if anything screwy is 
> going on.
> 
> 
> Tilman Rassy wrote:
> 
>> Hello Ralph,
>>
>> On Tuesday 24 January 2006 23:14, Ralph Goers wrote:
>>  
>>
>>> Can you send the source for the DocumentGenerator?  I'd love to see it.
>>>    
>>>
>> Yes, of course. Shall I send it to the dev list or to your private address? 
>> (The source is about 400 lines long.)
>>
>> On Wednesday 25 January 2006 09:11, Ralph Goers wrote:
>>  
>>
>>> What version of Cocoon is this?  The source for excalibur xmlutils 2.1
>>> and 1.0 doesn't match the line numbers in your stack traces.  What
>>> version is in your lib/core?
>>>    
>>>
>> It is Cocoon 2.1.3 (so it's not the newest version). The versions in lib/core 
>> are:
>>
>> avalon-framework-4.1.4.jar              excalibur-io-1.1.jar
>> commons-cli-1.0.jar                     excalibur-logger-1.0.1.jar
>> commons-collections-2.1.jar             excalibur-monitor-1.0.2.jar
>> commons-httpclient-2.0-rc1.jar          excalibur-naming-1.0.jar
>> commons-jexl-1.0-beta-1.jar             excalibur-pool-1.2.jar
>> commons-jxpath-20030909.jar             excalibur-sourceresolve-1.0.2-dev.jar
>> commons-lang-2.0.jar                    excalibur-store-1.0-dev.jar
>> excalibur-component-1.2-dev.jar         excalibur-xmlutil-1.0-dev.jar
>> excalibur-event-api-1.0.4-dev.jar       jakarta-regexp-1.3.jar
>> excalibur-event-impl-1.0.4-dev.jar      jisp-2.5.1.jar
>> excalibur-i18n-1.1.jar                  logkit-1.2.jar
>> excalibur-instrument-1.0.jar            resolver-20030708.jar
>> excalibur-instrument-manager-1.0.jar    rhino1.5r4-continuations-20030906.jar
>> excalibur-instrument-manager-interfaces-1.0.jar  util.concurrent-1.3.2.jar
>>
>> Tilman
>>  
>>
> 


-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/

Re: setup() called twice in one request

Posted by Ralph Goers <Ra...@dslextreme.com>.
OK. I have no idea how to get the source for xmlutil-1.0-dev.  I was 
looking at the current source and the 2.1.7 source (the oldest I have) 
and it looks to me that if there is a problem it is most likely in 
XSLTProcessorImpl.  However, I'd suggest you look at SitemapSource and 
AbstractProcessingPipeline in your source and see if anything screwy is 
going on.


Tilman Rassy wrote:

>Hello Ralph,
>
>On Tuesday 24 January 2006 23:14, Ralph Goers wrote:
>  
>
>>Can you send the source for the DocumentGenerator?  I'd love to see it.
>>    
>>
>
>Yes, of course. Shall I send it to the dev list or to your private address? 
>(The source is about 400 lines long.)
>
>On Wednesday 25 January 2006 09:11, Ralph Goers wrote:
>  
>
>>What version of Cocoon is this?  The source for excalibur xmlutils 2.1
>>and 1.0 doesn't match the line numbers in your stack traces.  What
>>version is in your lib/core?
>>    
>>
>
>It is Cocoon 2.1.3 (so it's not the newest version). The versions in lib/core 
>are:
>
>avalon-framework-4.1.4.jar              excalibur-io-1.1.jar
>commons-cli-1.0.jar                     excalibur-logger-1.0.1.jar
>commons-collections-2.1.jar             excalibur-monitor-1.0.2.jar
>commons-httpclient-2.0-rc1.jar          excalibur-naming-1.0.jar
>commons-jexl-1.0-beta-1.jar             excalibur-pool-1.2.jar
>commons-jxpath-20030909.jar             excalibur-sourceresolve-1.0.2-dev.jar
>commons-lang-2.0.jar                    excalibur-store-1.0-dev.jar
>excalibur-component-1.2-dev.jar         excalibur-xmlutil-1.0-dev.jar
>excalibur-event-api-1.0.4-dev.jar       jakarta-regexp-1.3.jar
>excalibur-event-impl-1.0.4-dev.jar      jisp-2.5.1.jar
>excalibur-i18n-1.1.jar                  logkit-1.2.jar
>excalibur-instrument-1.0.jar            resolver-20030708.jar
>excalibur-instrument-manager-1.0.jar    rhino1.5r4-continuations-20030906.jar
>excalibur-instrument-manager-interfaces-1.0.jar  util.concurrent-1.3.2.jar
>
>Tilman
>  
>

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
Hello Ralph,

On Tuesday 24 January 2006 23:14, Ralph Goers wrote:
> Can you send the source for the DocumentGenerator?  I'd love to see it.

Yes, of course. Shall I send it to the dev list or to your private address? 
(The source is about 400 lines long.)

On Wednesday 25 January 2006 09:11, Ralph Goers wrote:
> What version of Cocoon is this?  The source for excalibur xmlutils 2.1
> and 1.0 doesn't match the line numbers in your stack traces.  What
> version is in your lib/core?

It is Cocoon 2.1.3 (so it's not the newest version). The versions in lib/core 
are:

avalon-framework-4.1.4.jar              excalibur-io-1.1.jar
commons-cli-1.0.jar                     excalibur-logger-1.0.1.jar
commons-collections-2.1.jar             excalibur-monitor-1.0.2.jar
commons-httpclient-2.0-rc1.jar          excalibur-naming-1.0.jar
commons-jexl-1.0-beta-1.jar             excalibur-pool-1.2.jar
commons-jxpath-20030909.jar             excalibur-sourceresolve-1.0.2-dev.jar
commons-lang-2.0.jar                    excalibur-store-1.0-dev.jar
excalibur-component-1.2-dev.jar         excalibur-xmlutil-1.0-dev.jar
excalibur-event-api-1.0.4-dev.jar       jakarta-regexp-1.3.jar
excalibur-event-impl-1.0.4-dev.jar      jisp-2.5.1.jar
excalibur-i18n-1.1.jar                  logkit-1.2.jar
excalibur-instrument-1.0.jar            resolver-20030708.jar
excalibur-instrument-manager-1.0.jar    rhino1.5r4-continuations-20030906.jar
excalibur-instrument-manager-interfaces-1.0.jar  util.concurrent-1.3.2.jar

Tilman

Re: setup() called twice in one request

Posted by Ralph Goers <Ra...@dslextreme.com>.
Can you send the source for the DocumentGenerator?  I'd love to see it.

Ralph

Tilman Rassy said:
> Hello,
>
> On Tuesday 24 January 2006 13:32, Carsten Ziegeler wrote:
>> Tilman Rassy wrote:
>> > Hello Carsten,
>> >
>> > On Monday 23 January 2006 12:17, Carsten Ziegeler wrote:
>> >> Can you provide a stack trace for the two calls of the setup()
>> method,
>> >> so we can see from where this method is called.
>
> I was able to reproduce the situation and to create stack traces. Here is
> an
> excerpt from the logs again:
>
> --------------------- Log excerpt start -------------------
>
>   // First setup() call:
>
>   DEBUG   (2006-01-24) 19:25.10:549   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 1/3:
> Started. this.setupCounter = 1
>   net.mumie.cocoon.util.DebugException
>   	at
> net.mumie.cocoon.generators.DocumentGenerator.setup(DocumentGenerator.java:193)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:382)
>   	at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:529)
>   	at
> org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:393)
>   	at
> org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:256)
>   	at
> org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:99)
>   	at
> org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:247)
>   	at
> org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:520)
>   	at
> org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:503)
>   	at
> org.apache.excalibur.xml.xslt.XSLTProcessorImpl.resolve(XSLTProcessorImpl.java:693)
>   	at
> org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:227)
>   	at
> org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:184)
>   	at
> org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:638)
>   	at
> org.apache.cocoon.xml.ContentHandlerWrapper.startElement(ContentHandlerWrapper.java:181)
>   	at
> org.apache.cocoon.components.EnvironmentChanger.startElement(EnvironmentStack.java:159)
>   	at
> org.apache.cocoon.components.sax.XMLTeePipe.startElement(XMLTeePipe.java:118)
>   	at
> org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:245)
>   	at
> org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:329)
>   	at
> org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:284)
>   	at
> org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:419)
>   	at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:363)
>   	at
> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>   	at
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>   	at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>   	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
>   	at
> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>   	at
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>   	at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>   	at
> org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2228)
>   	at
> org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1306)
>   	at
> org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
>   	at
> org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:427)
>   	at
> org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
>   	at
> org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:579)
>   	at
> net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1226)
>   	at
> net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1265)
>   	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:324)
>   	at
> org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:182)
>   	at $Proxy4.toSAX(Unknown Source)
>   	at
> net.mumie.cocoon.generators.DocumentGenerator.generate(DocumentGenerator.java:267)
>   	at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:242)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:693)
>   	at
> org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:463)
>   	at
> org.apache.excalibur.xml.xslt.XSLTProcessorImpl.sourceToSAX(XSLTProcessorImpl.java:394)
>   	at
> org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getTransformerHandlerAndValidity(XSLTProcessorImpl.java:315)
>   	at
> org.apache.cocoon.transformation.TraxTransformer.setup(TraxTransformer.java:330)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:395)
>   	at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
>   	at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:138)
>   	at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>   	at
> org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:66)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:128)
>   	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:84)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>   	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:84)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>   	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:152)
>   	at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>   	at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>   	at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>   	at
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>   	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
> 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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
>   	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
>   	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
>   	at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
>   	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
>   	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
>   	at java.lang.Thread.run(Thread.java:534)
>
>   DEBUG   (2006-01-24) 19:25.10:556   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 2/3: type =
> 15, id = 16, useMode = 0, refId = -1, fromDocType = -1
>
>   // ...
>
>   DEBUG   (2006-01-24) 19:25.10:559   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 3/3: Done.
> this.document = XslStylesheetDocument#3(15,16,0)
>
>   DEBUG   (2006-01-24) 19:25.10:565   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 1/2
>
>   DEBUG   (2006-01-24) 19:25.10:570   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 2/2: key =
> 15-16-!-!-0
>
>   DEBUG   (2006-01-24) 19:25.10:572   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
>
>   DEBUG   (2006-01-24) 19:25.10:578   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2:
> lastModified = 1137439974166
>
>   DEBUG   (2006-01-24) 19:25.10:579   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
>
>   DEBUG   (2006-01-24) 19:25.10:583   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2:
> lastModified = 1137439974166
>
>   // Second setup() call:
>
>   DEBUG   (2006-01-24) 19:25.10:584   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 1/3:
> Started. this.setupCounter = 2
>   net.mumie.cocoon.util.DebugException
>   	at
> net.mumie.cocoon.generators.DocumentGenerator.setup(DocumentGenerator.java:193)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:382)
>   	at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>   	at
> org.apache.cocoon.components.source.impl.SitemapSource.getInputStream(SitemapSource.java:309)
>   	at
> org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getInputSource(XSLTProcessorImpl.java:801)
>   	at
> org.apache.excalibur.xml.xslt.XSLTProcessorImpl.resolve(XSLTProcessorImpl.java:726)
>   	at
> org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:227)
>   	at
> org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:184)
>   	at
> org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:638)
>   	at
> org.apache.cocoon.xml.ContentHandlerWrapper.startElement(ContentHandlerWrapper.java:181)
>   	at
> org.apache.cocoon.components.EnvironmentChanger.startElement(EnvironmentStack.java:159)
>   	at
> org.apache.cocoon.components.sax.XMLTeePipe.startElement(XMLTeePipe.java:118)
>   	at
> org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:245)
>   	at
> org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:329)
>   	at
> org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:284)
>   	at
> org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:419)
>   	at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:363)
>   	at
> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>   	at
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>   	at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>   	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
>   	at
> org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>   	at
> org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>   	at
> org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>   	at
> org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2228)
>   	at
> org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1306)
>   	at
> org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
>   	at
> org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:427)
>   	at
> org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
>   	at
> org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:579)
>   	at
> net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1226)
>   	at
> net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1265)
>   	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:324)
>   	at
> org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:182)
>   	at $Proxy4.toSAX(Unknown Source)
>   	at
> net.mumie.cocoon.generators.DocumentGenerator.generate(DocumentGenerator.java:267)
>   	at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:242)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:693)
>   	at
> org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:463)
>   	at
> org.apache.excalibur.xml.xslt.XSLTProcessorImpl.sourceToSAX(XSLTProcessorImpl.java:394)
>   	at
> org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getTransformerHandlerAndValidity(XSLTProcessorImpl.java:315)
>   	at
> org.apache.cocoon.transformation.TraxTransformer.setup(TraxTransformer.java:330)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:395)
>   	at
> org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>   	at
> org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
>   	at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:138)
>   	at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>   	at
> org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:66)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:128)
>   	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:84)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>   	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:84)
>   	at
> org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>   	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:152)
>   	at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>   	at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>   	at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>   	at
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>   	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
> 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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
>   	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
>   	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
>   	at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
>   	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
>   	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
>   	at java.lang.Thread.run(Thread.java:534)
>
>   DEBUG   (2006-01-24) 19:25.10:590   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 2/3: type =
> 15, id = 16, useMode = 0, refId = -1, fromDocType = -1
>
>   // ...
>
>   DEBUG   (2006-01-24) 19:25.10:593   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 3/3: Done.
> this.document = XslStylesheetDocument#4(2,16,0)
>
>   DEBUG   (2006-01-24) 19:25.10:599   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 1/2
>
>   DEBUG   (2006-01-24) 19:25.10:600   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 2/2: key =
> 15-16-!-!-0
>
>   DEBUG   (2006-01-24) 19:25.10:601   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
>
>   DEBUG   (2006-01-24) 19:25.10:607   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2:
> lastModified = 1137439974166
>
>   DEBUG   (2006-01-24) 19:25.10:608   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: recycle 1/2:
> Started
>
>   // ...
>
>   DEBUG   (2006-01-24) 19:25.10:617   [sitemap]
> (/cocoon/protected/admin/status/service/overview)
> Thread-11/AbstractJapsGenerator: DocumentGenerator#2: recycle 2/2: Done
>
> --------------------- Log excerpt end ----------------------
>
> I will also try to create a testcase for you.
>
> Best regards,
> Tilman
>


Re: setup() called twice in one request

Posted by Jean-Baptiste Quenot <jb...@apache.org>.
* Carsten Ziegeler:

> > From a quick glance at the stack traces I think this might be a bug in
> > the sitemap source implementation when getInputStream() is used.

Is the problem related to the following bug:

Calling SitemapSource.getInputStream() twice
http://issues.apache.org/jira/browse/COCOON-1642

There's a testcase available in the bug report.
-- 
Jean-Baptiste Quenot
http://caraldi.com/jbq/

Re: setup() called twice in one request

Posted by Carsten Ziegeler <cz...@apache.org>.
>From a quick glance at the stack traces I think this might be a bug in
the sitemap source implementation when getInputStream() is used.

Carsten
Tilman Rassy wrote:
> Hello,
> 
> On Tuesday 24 January 2006 13:32, Carsten Ziegeler wrote:
>> Tilman Rassy wrote:
>>> Hello Carsten,
>>>
>>> On Monday 23 January 2006 12:17, Carsten Ziegeler wrote:
>>>> Can you provide a stack trace for the two calls of the setup() method,
>>>> so we can see from where this method is called.
> 
> I was able to reproduce the situation and to create stack traces. Here is an
> excerpt from the logs again:
> 
> --------------------- Log excerpt start ------------------- 
> 
>   // First setup() call:
> 
>   DEBUG   (2006-01-24) 19:25.10:549   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 1/3: Started. this.setupCounter = 1
>   net.mumie.cocoon.util.DebugException
>   	at net.mumie.cocoon.generators.DocumentGenerator.setup(DocumentGenerator.java:193)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:382)
>   	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:529)
>   	at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:393)
>   	at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:256)
>   	at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:99)
>   	at org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:247)
>   	at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:520)
>   	at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:503)
>   	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.resolve(XSLTProcessorImpl.java:693)
>   	at org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:227)
>   	at org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:184)
>   	at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:638)
>   	at org.apache.cocoon.xml.ContentHandlerWrapper.startElement(ContentHandlerWrapper.java:181)
>   	at org.apache.cocoon.components.EnvironmentChanger.startElement(EnvironmentStack.java:159)
>   	at org.apache.cocoon.components.sax.XMLTeePipe.startElement(XMLTeePipe.java:118)
>   	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:245)
>   	at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:329)
>   	at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:284)
>   	at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:419)
>   	at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:363)
>   	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>   	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>   	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>   	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
>   	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>   	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>   	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>   	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2228)
>   	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1306)
>   	at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
>   	at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:427)
>   	at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
>   	at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:579)
>   	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1226)
>   	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1265)
>   	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:324)
>   	at org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:182)
>   	at $Proxy4.toSAX(Unknown Source)
>   	at net.mumie.cocoon.generators.DocumentGenerator.generate(DocumentGenerator.java:267)
>   	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:242)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:693)
>   	at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:463)
>   	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.sourceToSAX(XSLTProcessorImpl.java:394)
>   	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getTransformerHandlerAndValidity(XSLTProcessorImpl.java:315)
>   	at org.apache.cocoon.transformation.TraxTransformer.setup(TraxTransformer.java:330)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:395)
>   	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
>   	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:138)
>   	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>   	at org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:66)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:128)
>   	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:84)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>   	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:84)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>   	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:152)
>   	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>   	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>   	at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>   	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>   	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 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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
>   	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
>   	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
>   	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
>   	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
>   	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
>   	at java.lang.Thread.run(Thread.java:534)
> 
>   DEBUG   (2006-01-24) 19:25.10:556   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 2/3: type = 15, id = 16, useMode = 0, refId = -1, fromDocType = -1
> 
>   // ...
> 
>   DEBUG   (2006-01-24) 19:25.10:559   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 3/3: Done. this.document = XslStylesheetDocument#3(15,16,0)
> 
>   DEBUG   (2006-01-24) 19:25.10:565   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 1/2
> 
>   DEBUG   (2006-01-24) 19:25.10:570   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 2/2: key = 15-16-!-!-0
> 
>   DEBUG   (2006-01-24) 19:25.10:572   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
> 
>   DEBUG   (2006-01-24) 19:25.10:578   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166
> 
>   DEBUG   (2006-01-24) 19:25.10:579   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
> 
>   DEBUG   (2006-01-24) 19:25.10:583   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166
> 
>   // Second setup() call:
> 
>   DEBUG   (2006-01-24) 19:25.10:584   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 1/3: Started. this.setupCounter = 2
>   net.mumie.cocoon.util.DebugException
>   	at net.mumie.cocoon.generators.DocumentGenerator.setup(DocumentGenerator.java:193)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:382)
>   	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>   	at org.apache.cocoon.components.source.impl.SitemapSource.getInputStream(SitemapSource.java:309)
>   	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getInputSource(XSLTProcessorImpl.java:801)
>   	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.resolve(XSLTProcessorImpl.java:726)
>   	at org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:227)
>   	at org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:184)
>   	at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:638)
>   	at org.apache.cocoon.xml.ContentHandlerWrapper.startElement(ContentHandlerWrapper.java:181)
>   	at org.apache.cocoon.components.EnvironmentChanger.startElement(EnvironmentStack.java:159)
>   	at org.apache.cocoon.components.sax.XMLTeePipe.startElement(XMLTeePipe.java:118)
>   	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:245)
>   	at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:329)
>   	at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:284)
>   	at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:419)
>   	at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:363)
>   	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>   	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>   	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>   	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
>   	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>   	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>   	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>   	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2228)
>   	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1306)
>   	at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
>   	at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:427)
>   	at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
>   	at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:579)
>   	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1226)
>   	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1265)
>   	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:324)
>   	at org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:182)
>   	at $Proxy4.toSAX(Unknown Source)
>   	at net.mumie.cocoon.generators.DocumentGenerator.generate(DocumentGenerator.java:267)
>   	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:242)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:693)
>   	at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:463)
>   	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.sourceToSAX(XSLTProcessorImpl.java:394)
>   	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getTransformerHandlerAndValidity(XSLTProcessorImpl.java:315)
>   	at org.apache.cocoon.transformation.TraxTransformer.setup(TraxTransformer.java:330)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:395)
>   	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>   	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
>   	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:138)
>   	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>   	at org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:66)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:128)
>   	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:84)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>   	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:84)
>   	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>   	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:152)
>   	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>   	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>   	at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>   	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>   	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 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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
>   	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
>   	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
>   	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
>   	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
>   	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
>   	at java.lang.Thread.run(Thread.java:534)
> 
>   DEBUG   (2006-01-24) 19:25.10:590   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 2/3: type = 15, id = 16, useMode = 0, refId = -1, fromDocType = -1
> 
>   // ...
> 
>   DEBUG   (2006-01-24) 19:25.10:593   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 3/3: Done. this.document = XslStylesheetDocument#4(2,16,0)
> 
>   DEBUG   (2006-01-24) 19:25.10:599   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 1/2
> 
>   DEBUG   (2006-01-24) 19:25.10:600   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 2/2: key = 15-16-!-!-0
> 
>   DEBUG   (2006-01-24) 19:25.10:601   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
> 
>   DEBUG   (2006-01-24) 19:25.10:607   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166
> 
>   DEBUG   (2006-01-24) 19:25.10:608   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: recycle 1/2: Started
> 
>   // ...
> 
>   DEBUG   (2006-01-24) 19:25.10:617   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: recycle 2/2: Done
> 
> --------------------- Log excerpt end ----------------------
> 
> I will also try to create a testcase for you.
> 
> Best regards,
> Tilman
> 


-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/

Re: setup() called twice in one request

Posted by Ralph Goers <Ra...@dslextreme.com>.
What version of Cocoon is this?  The source for excalibur xmlutils 2.1 
and 1.0 doesn't match the line numbers in your stack traces.  What 
version is in your lib/core?

Ralph

Tilman Rassy wrote:

>Hello,
>
>On Tuesday 24 January 2006 13:32, Carsten Ziegeler wrote:
>  
>
>>Tilman Rassy wrote:
>>    
>>
>>>Hello Carsten,
>>>
>>>On Monday 23 January 2006 12:17, Carsten Ziegeler wrote:
>>>      
>>>
>>>>Can you provide a stack trace for the two calls of the setup() method,
>>>>so we can see from where this method is called.
>>>>        
>>>>
>
>I was able to reproduce the situation and to create stack traces. Here is an
>excerpt from the logs again:
>
>--------------------- Log excerpt start ------------------- 
>
>  // First setup() call:
>
>  DEBUG   (2006-01-24) 19:25.10:549   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 1/3: Started. this.setupCounter = 1
>  net.mumie.cocoon.util.DebugException
>  	at net.mumie.cocoon.generators.DocumentGenerator.setup(DocumentGenerator.java:193)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:382)
>  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:529)
>  	at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:393)
>  	at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:256)
>  	at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:99)
>  	at org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:247)
>  	at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:520)
>  	at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:503)
>  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.resolve(XSLTProcessorImpl.java:693)
>  	at org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:227)
>  	at org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:184)
>  	at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:638)
>  	at org.apache.cocoon.xml.ContentHandlerWrapper.startElement(ContentHandlerWrapper.java:181)
>  	at org.apache.cocoon.components.EnvironmentChanger.startElement(EnvironmentStack.java:159)
>  	at org.apache.cocoon.components.sax.XMLTeePipe.startElement(XMLTeePipe.java:118)
>  	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:245)
>  	at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:329)
>  	at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:284)
>  	at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:419)
>  	at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:363)
>  	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>  	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>  	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>  	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
>  	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>  	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>  	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>  	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2228)
>  	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1306)
>  	at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
>  	at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:427)
>  	at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
>  	at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:579)
>  	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1226)
>  	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1265)
>  	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:324)
>  	at org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:182)
>  	at $Proxy4.toSAX(Unknown Source)
>  	at net.mumie.cocoon.generators.DocumentGenerator.generate(DocumentGenerator.java:267)
>  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:242)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:693)
>  	at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:463)
>  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.sourceToSAX(XSLTProcessorImpl.java:394)
>  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getTransformerHandlerAndValidity(XSLTProcessorImpl.java:315)
>  	at org.apache.cocoon.transformation.TraxTransformer.setup(TraxTransformer.java:330)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:395)
>  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
>  	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:138)
>  	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>  	at org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:66)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:128)
>  	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:84)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>  	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:84)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>  	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:152)
>  	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>  	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>  	at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>  	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>  	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 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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
>  	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
>  	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
>  	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
>  	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
>  	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
>  	at java.lang.Thread.run(Thread.java:534)
>
>  DEBUG   (2006-01-24) 19:25.10:556   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 2/3: type = 15, id = 16, useMode = 0, refId = -1, fromDocType = -1
>
>  // ...
>
>  DEBUG   (2006-01-24) 19:25.10:559   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 3/3: Done. this.document = XslStylesheetDocument#3(15,16,0)
>
>  DEBUG   (2006-01-24) 19:25.10:565   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 1/2
>
>  DEBUG   (2006-01-24) 19:25.10:570   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 2/2: key = 15-16-!-!-0
>
>  DEBUG   (2006-01-24) 19:25.10:572   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
>
>  DEBUG   (2006-01-24) 19:25.10:578   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166
>
>  DEBUG   (2006-01-24) 19:25.10:579   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
>
>  DEBUG   (2006-01-24) 19:25.10:583   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166
>
>  // Second setup() call:
>
>  DEBUG   (2006-01-24) 19:25.10:584   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 1/3: Started. this.setupCounter = 2
>  net.mumie.cocoon.util.DebugException
>  	at net.mumie.cocoon.generators.DocumentGenerator.setup(DocumentGenerator.java:193)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:382)
>  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>  	at org.apache.cocoon.components.source.impl.SitemapSource.getInputStream(SitemapSource.java:309)
>  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getInputSource(XSLTProcessorImpl.java:801)
>  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.resolve(XSLTProcessorImpl.java:726)
>  	at org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:227)
>  	at org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:184)
>  	at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:638)
>  	at org.apache.cocoon.xml.ContentHandlerWrapper.startElement(ContentHandlerWrapper.java:181)
>  	at org.apache.cocoon.components.EnvironmentChanger.startElement(EnvironmentStack.java:159)
>  	at org.apache.cocoon.components.sax.XMLTeePipe.startElement(XMLTeePipe.java:118)
>  	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:245)
>  	at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:329)
>  	at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:284)
>  	at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:419)
>  	at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:363)
>  	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>  	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>  	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>  	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
>  	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
>  	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
>  	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
>  	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2228)
>  	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1306)
>  	at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
>  	at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:427)
>  	at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
>  	at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:579)
>  	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1226)
>  	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1265)
>  	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:324)
>  	at org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:182)
>  	at $Proxy4.toSAX(Unknown Source)
>  	at net.mumie.cocoon.generators.DocumentGenerator.generate(DocumentGenerator.java:267)
>  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:242)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:693)
>  	at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:463)
>  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.sourceToSAX(XSLTProcessorImpl.java:394)
>  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getTransformerHandlerAndValidity(XSLTProcessorImpl.java:315)
>  	at org.apache.cocoon.transformation.TraxTransformer.setup(TraxTransformer.java:330)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:395)
>  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
>  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
>  	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:138)
>  	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
>  	at org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:66)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:128)
>  	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:84)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>  	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:84)
>  	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
>  	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:152)
>  	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
>  	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
>  	at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
>  	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
>  	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 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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
>  	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
>  	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
>  	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
>  	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
>  	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
>  	at java.lang.Thread.run(Thread.java:534)
>
>  DEBUG   (2006-01-24) 19:25.10:590   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 2/3: type = 15, id = 16, useMode = 0, refId = -1, fromDocType = -1
>
>  // ...
>
>  DEBUG   (2006-01-24) 19:25.10:593   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 3/3: Done. this.document = XslStylesheetDocument#4(2,16,0)
>
>  DEBUG   (2006-01-24) 19:25.10:599   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 1/2
>
>  DEBUG   (2006-01-24) 19:25.10:600   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 2/2: key = 15-16-!-!-0
>
>  DEBUG   (2006-01-24) 19:25.10:601   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2
>
>  DEBUG   (2006-01-24) 19:25.10:607   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166
>
>  DEBUG   (2006-01-24) 19:25.10:608   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: recycle 1/2: Started
>
>  // ...
>
>  DEBUG   (2006-01-24) 19:25.10:617   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: recycle 2/2: Done
>
>--------------------- Log excerpt end ----------------------
>
>I will also try to create a testcase for you.
>
>Best regards,
>Tilman
>  
>

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
Hello,

On Tuesday 24 January 2006 13:32, Carsten Ziegeler wrote:
> Tilman Rassy wrote:
> > Hello Carsten,
> >
> > On Monday 23 January 2006 12:17, Carsten Ziegeler wrote:
> >> Can you provide a stack trace for the two calls of the setup() method,
> >> so we can see from where this method is called.

I was able to reproduce the situation and to create stack traces. Here is an
excerpt from the logs again:

--------------------- Log excerpt start ------------------- 

  // First setup() call:

  DEBUG   (2006-01-24) 19:25.10:549   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 1/3: Started. this.setupCounter = 1
  net.mumie.cocoon.util.DebugException
  	at net.mumie.cocoon.generators.DocumentGenerator.setup(DocumentGenerator.java:193)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:382)
  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:529)
  	at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:393)
  	at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:256)
  	at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:99)
  	at org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:247)
  	at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:520)
  	at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:503)
  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.resolve(XSLTProcessorImpl.java:693)
  	at org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:227)
  	at org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:184)
  	at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:638)
  	at org.apache.cocoon.xml.ContentHandlerWrapper.startElement(ContentHandlerWrapper.java:181)
  	at org.apache.cocoon.components.EnvironmentChanger.startElement(EnvironmentStack.java:159)
  	at org.apache.cocoon.components.sax.XMLTeePipe.startElement(XMLTeePipe.java:118)
  	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:245)
  	at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:329)
  	at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:284)
  	at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:419)
  	at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:363)
  	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
  	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
  	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
  	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
  	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
  	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
  	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
  	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2228)
  	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1306)
  	at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
  	at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:427)
  	at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
  	at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:579)
  	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1226)
  	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1265)
  	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:324)
  	at org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:182)
  	at $Proxy4.toSAX(Unknown Source)
  	at net.mumie.cocoon.generators.DocumentGenerator.generate(DocumentGenerator.java:267)
  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:242)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:693)
  	at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:463)
  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.sourceToSAX(XSLTProcessorImpl.java:394)
  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getTransformerHandlerAndValidity(XSLTProcessorImpl.java:315)
  	at org.apache.cocoon.transformation.TraxTransformer.setup(TraxTransformer.java:330)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:395)
  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
  	at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
  	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
  	at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:138)
  	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
  	at org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:66)
  	at org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:128)
  	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:84)
  	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
  	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:84)
  	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
  	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:152)
  	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
  	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
  	at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
  	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
  	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 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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
  	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
  	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
  	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
  	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
  	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
  	at java.lang.Thread.run(Thread.java:534)

  DEBUG   (2006-01-24) 19:25.10:556   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 2/3: type = 15, id = 16, useMode = 0, refId = -1, fromDocType = -1

  // ...

  DEBUG   (2006-01-24) 19:25.10:559   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 3/3: Done. this.document = XslStylesheetDocument#3(15,16,0)

  DEBUG   (2006-01-24) 19:25.10:565   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 1/2

  DEBUG   (2006-01-24) 19:25.10:570   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 2/2: key = 15-16-!-!-0

  DEBUG   (2006-01-24) 19:25.10:572   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2

  DEBUG   (2006-01-24) 19:25.10:578   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166

  DEBUG   (2006-01-24) 19:25.10:579   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2

  DEBUG   (2006-01-24) 19:25.10:583   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166

  // Second setup() call:

  DEBUG   (2006-01-24) 19:25.10:584   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 1/3: Started. this.setupCounter = 2
  net.mumie.cocoon.util.DebugException
  	at net.mumie.cocoon.generators.DocumentGenerator.setup(DocumentGenerator.java:193)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:382)
  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
  	at org.apache.cocoon.components.source.impl.SitemapSource.getInputStream(SitemapSource.java:309)
  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getInputSource(XSLTProcessorImpl.java:801)
  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.resolve(XSLTProcessorImpl.java:726)
  	at org.apache.xalan.processor.ProcessorInclude.parse(ProcessorInclude.java:227)
  	at org.apache.xalan.processor.ProcessorInclude.startElement(ProcessorInclude.java:184)
  	at org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.java:638)
  	at org.apache.cocoon.xml.ContentHandlerWrapper.startElement(ContentHandlerWrapper.java:181)
  	at org.apache.cocoon.components.EnvironmentChanger.startElement(EnvironmentStack.java:159)
  	at org.apache.cocoon.components.sax.XMLTeePipe.startElement(XMLTeePipe.java:118)
  	at org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:245)
  	at org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:329)
  	at org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:284)
  	at org.apache.xalan.templates.ElemElement.constructNode(ElemElement.java:419)
  	at org.apache.xalan.templates.ElemElement.execute(ElemElement.java:363)
  	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
  	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
  	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
  	at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
  	at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:429)
  	at org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:215)
  	at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2362)
  	at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2228)
  	at org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1306)
  	at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
  	at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:427)
  	at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
  	at org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:579)
  	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1226)
  	at net.mumie.cocoon.documents.AbstractDocument.toSAX(AbstractDocument.java:1265)
  	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:324)
  	at org.apache.avalon.excalibur.component.ComponentProxyGenerator$ComponentInvocationHandler.invoke(ComponentProxyGenerator.java:182)
  	at $Proxy4.toSAX(Unknown Source)
  	at net.mumie.cocoon.generators.DocumentGenerator.generate(DocumentGenerator.java:267)
  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:242)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:693)
  	at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:463)
  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.sourceToSAX(XSLTProcessorImpl.java:394)
  	at org.apache.excalibur.xml.xslt.XSLTProcessorImpl.getTransformerHandlerAndValidity(XSLTProcessorImpl.java:315)
  	at org.apache.cocoon.transformation.TraxTransformer.setup(TraxTransformer.java:330)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:395)
  	at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:517)
  	at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:479)
  	at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
  	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
  	at org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:138)
  	at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
  	at org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:66)
  	at org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:128)
  	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:84)
  	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
  	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:84)
  	at org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:176)
  	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:152)
  	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:354)
  	at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:307)
  	at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
  	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
  	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 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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
  	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
  	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
  	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
  	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
  	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
  	at java.lang.Thread.run(Thread.java:534)

  DEBUG   (2006-01-24) 19:25.10:590   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 2/3: type = 15, id = 16, useMode = 0, refId = -1, fromDocType = -1

  // ...

  DEBUG   (2006-01-24) 19:25.10:593   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: setup 3/3: Done. this.document = XslStylesheetDocument#4(2,16,0)

  DEBUG   (2006-01-24) 19:25.10:599   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 1/2

  DEBUG   (2006-01-24) 19:25.10:600   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getKey 2/2: key = 15-16-!-!-0

  DEBUG   (2006-01-24) 19:25.10:601   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 1/2

  DEBUG   (2006-01-24) 19:25.10:607   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166

  DEBUG   (2006-01-24) 19:25.10:608   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: recycle 1/2: Started

  // ...

  DEBUG   (2006-01-24) 19:25.10:617   [sitemap] (/cocoon/protected/admin/status/service/overview) Thread-11/AbstractJapsGenerator: DocumentGenerator#2: recycle 2/2: Done

--------------------- Log excerpt end ----------------------

I will also try to create a testcase for you.

Best regards,
Tilman

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
Hello,

On Tuesday 24 January 2006 14:29, Giacomo Pati wrote:
> > Is there a way to create a stack trace and insert it into the logs? I
> > could do something like
> >
> > try
> >  {
> >    throw new MyExcpetion();
> >  }
> > catch (MyException myExcpetion)
> >  {
> >    this.getLogger.debug( /* get stack trace from myException */ );
> >  }
>
> You don't have to throw it. Just
>
>     getLogger.debug("myException", new MyExcpetion());
>
> should be enought.

On Tuesday 24 January 2006 16:08, Ralph Goers wrote:
> You can also just do new Throwable() and then print it.

Thank you both for your advice. I did it that way and it worked fine.

Tilman

Re: setup() called twice in one request

Posted by Ralph Goers <Ra...@dslextreme.com>.
You can also just do new Throwable() and then print it.

Carsten Ziegeler wrote:

>Tilman Rassy wrote:
>  
>
>>Hello Carsten,
>>
>>On Monday 23 January 2006 12:17, Carsten Ziegeler wrote:
>>
>>    
>>
>>>Can you provide a stack trace for the two calls of the setup() method,
>>>so we can see from where this method is called.
>>>      
>>>
>>Is there a way to create a stack trace and insert it into the logs? I could do 
>>something like
>>
>>try
>>  {
>>    throw new MyExcpetion();
>>  }
>>catch (MyException myExcpetion)
>>  {
>>    this.getLogger.debug( /* get stack trace from myException */ );
>>  }
>>
>>in the setup() method. Would that work?
>>
>>    
>>
>Yepp, I'm usually using the same approach :)
>
>Carsten
>
>  
>

Re: setup() called twice in one request

Posted by Carsten Ziegeler <cz...@apache.org>.
Tilman Rassy wrote:
> Hello Carsten,
> 
> On Monday 23 January 2006 12:17, Carsten Ziegeler wrote:
> 
>> Can you provide a stack trace for the two calls of the setup() method,
>> so we can see from where this method is called.
> 
> Is there a way to create a stack trace and insert it into the logs? I could do 
> something like
> 
> try
>   {
>     throw new MyExcpetion();
>   }
> catch (MyException myExcpetion)
>   {
>     this.getLogger.debug( /* get stack trace from myException */ );
>   }
> 
> in the setup() method. Would that work?
> 
Yepp, I'm usually using the same approach :)

Carsten

-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/

Re: setup() called twice in one request

Posted by Giacomo Pati <gi...@apache.org>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tue, 24 Jan 2006, Tilman Rassy wrote:

> Date: Tue, 24 Jan 2006 13:15:01 +0100
> From: Tilman Rassy <ra...@math.TU-Berlin.DE>
> Reply-To: dev@cocoon.apache.org
> To: dev@cocoon.apache.org
> Subject: Re: setup() called twice in one request
> 
> Hello Carsten,
>
> On Monday 23 January 2006 12:17, Carsten Ziegeler wrote:
>
>> Can you provide a stack trace for the two calls of the setup() method,
>> so we can see from where this method is called.
>
> Is there a way to create a stack trace and insert it into the logs? I could do
> something like
>
> try
>  {
>    throw new MyExcpetion();
>  }
> catch (MyException myExcpetion)
>  {
>    this.getLogger.debug( /* get stack trace from myException */ );
>  }

You don't have to throw it. Just

    getLogger.debug("myException", new MyExcpetion());

should be enought.

- -- 
Giacomo Pati
Otego AG, Switzerland - http://www.otego.com
Orixo, the XML business alliance - http://www.orixo.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFD1ivDLNdJvZjjVZARAv9sAJ4rNxIl/K9/Y7xjuyNAO+YSFmfo5gCfdARl
vLaBDxe7Dfv5tVSxQiGk4Kg=
=iqTr
-----END PGP SIGNATURE-----

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
Hello Carsten,

On Monday 23 January 2006 12:17, Carsten Ziegeler wrote:

> Can you provide a stack trace for the two calls of the setup() method,
> so we can see from where this method is called.

Is there a way to create a stack trace and insert it into the logs? I could do 
something like

try
  {
    throw new MyExcpetion();
  }
catch (MyException myExcpetion)
  {
    this.getLogger.debug( /* get stack trace from myException */ );
  }

in the setup() method. Would that work?

Tilman

Re: setup() called twice in one request

Posted by Carsten Ziegeler <cz...@apache.org>.
Tilman Rassy schrieb:
> On Monday 23 January 2006 09:38, Carsten Ziegeler wrote:
>> Tilman Rassy wrote:
>>> Hello,
>>>
>>> On Thursday 19 January 2006 23:43, Joerg Heinicke wrote:
>>>> On 19.01.2006 19:01, Tilman Rassy wrote:
>>>>> we discovered that the setup() method of a custom generator is sometimes
>>>>> called twice in one request.
>>>> Are you sure that it is only one request. For example using the Acrobat
>>>> Reader in IE results in two requests.
>>> I'm quite sure that it is the same request and the the same generator
>>> instance - we have very detailed logging. Here is an exceprt from the
>>> logs:
>>>
>>> ------------ log except start -----------
>>>
>>> <SNIP/>
>> Strange, what about the generate() method? When is that one called?
>> Twice as well?
> 
> In the case of the request with the two setup() calls, it is not called at 
> all. Probably the response is taken from the cache. In other cases, when it 
> is called, it is called only once.
> 
> One thing I should mention is that in all cases the response is not corrupted. 
> What we see in the browser is exactly what we expect.
> 
>> Now, the best thing would be if you could provide a reproducable test
>> case for us.
> 
> Yes, I will try to create one. However, since our system contains a lot of 
> code and data, it may take a little time to extract a testcase from it.
> 
Sure :)

Can you provide a stack trace for the two calls of the setup() method,
so we can see from where this method is called.

Thanks
Carsten



-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
On Monday 23 January 2006 09:38, Carsten Ziegeler wrote:
> Tilman Rassy wrote:
> > Hello,
> >
> > On Thursday 19 January 2006 23:43, Joerg Heinicke wrote:
> >>On 19.01.2006 19:01, Tilman Rassy wrote:
> >>>we discovered that the setup() method of a custom generator is sometimes
> >>>called twice in one request.
> >>
> >>Are you sure that it is only one request. For example using the Acrobat
> >>Reader in IE results in two requests.
> >
> > I'm quite sure that it is the same request and the the same generator
> > instance - we have very detailed logging. Here is an exceprt from the
> > logs:
> >
> > ------------ log except start -----------
> >
> > <SNIP/>
>
> Strange, what about the generate() method? When is that one called?
> Twice as well?

In the case of the request with the two setup() calls, it is not called at 
all. Probably the response is taken from the cache. In other cases, when it 
is called, it is called only once.

One thing I should mention is that in all cases the response is not corrupted. 
What we see in the browser is exactly what we expect.

> Now, the best thing would be if you could provide a reproducable test
> case for us.

Yes, I will try to create one. However, since our system contains a lot of 
code and data, it may take a little time to extract a testcase from it.

Tilman

Re: setup() called twice in one request

Posted by Carsten Ziegeler <cz...@apache.org>.
Tilman Rassy wrote:
> Hello,
> 
> On Thursday 19 January 2006 23:43, Joerg Heinicke wrote:
> 
>>On 19.01.2006 19:01, Tilman Rassy wrote:
>>
>>>we discovered that the setup() method of a custom generator is sometimes
>>>called twice in one request.
>>
>>Are you sure that it is only one request. For example using the Acrobat
>>Reader in IE results in two requests.
> 
> 
> I'm quite sure that it is the same request and the the same generator instance 
> - we have very detailed logging. Here is an exceprt from the logs:
> 
> ------------ log except start -----------
> 
> <SNIP/>
Strange, what about the generate() method? When is that one called?
Twice as well?

Now, the best thing would be if you could provide a reproducable test
case for us.

Carsten

-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
Hello,

On Thursday 19 January 2006 23:43, Joerg Heinicke wrote:
> On 19.01.2006 19:01, Tilman Rassy wrote:
> > we discovered that the setup() method of a custom generator is sometimes
> > called twice in one request.
>
> Are you sure that it is only one request. For example using the Acrobat
> Reader in IE results in two requests.

I'm quite sure that it is the same request and the the same generator instance 
- we have very detailed logging. Here is an exceprt from the logs:

------------ log except start -----------

// setup method starts

sitemap.log 5663:  DEBUG   (2006-01-18) 20:39.37:763   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: setup 1/3: Started

sitemap.log 5664:  DEBUG   (2006-01-18) 20:39.37:763   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: setup 2/3: type = 15, id = 16, useMode = 0, refId = -1, 
fromDocType = -1

// some nonrelevant messages left out here

sitemap.log 5669:  DEBUG   (2006-01-18) 20:39.37:766   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: setup 3/3: Done. this.document = XslStylesheetDocument#3
(15,16,0)

// setup method has returned

// some nonrelevant messages left out here

// getKey Method starts

sitemap.log 5675:  DEBUG   (2006-01-18) 20:39.37:773   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getKey 1/2

sitemap.log 5676:  DEBUG   (2006-01-18) 20:39.37:780   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getKey 2/2: key = 15-16-!-!-0

// getKey Method has returned

// getValidity method starts

sitemap.log 5678:  DEBUG   (2006-01-18) 20:39.37:782   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getValidity 1/2

sitemap.log 5679:  DEBUG   (2006-01-18) 20:39.37:788   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166

// getValidity method has returned

// second getValidity call starts

sitemap.log 5682:  DEBUG   (2006-01-18) 20:39.37:789   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getValidity 1/2

sitemap.log 5683:  DEBUG   (2006-01-18) 20:39.37:793   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166

// second getValidity call has returned

// second setup call starts

sitemap.log 5686:  DEBUG   (2006-01-18) 20:39.37:794   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: setup 1/3: Started

sitemap.log 5687:  DEBUG   (2006-01-18) 20:39.37:795   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: setup 2/3: type = 15, id = 16, useMode = 0, refId = -1, 
fromDocType = -1

// some nonrelevant messages left out here

sitemap.log 5692:  DEBUG   (2006-01-18) 20:39.37:797   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: setup 3/3: Done. this.document = XslStylesheetDocument#4
(2,16,0)

// second setup call has returned

sitemap.log 5698:  DEBUG   (2006-01-18) 20:39.37:805   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getKey 1/2

sitemap.log 5699:  DEBUG   (2006-01-18) 20:39.37:806   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getKey 2/2: key = 15-16-!-!-0

sitemap.log 5701:  DEBUG   (2006-01-18) 20:39.37:807   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getValidity 1/2

sitemap.log 5702:  DEBUG   (2006-01-18) 20:39.37:814   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: getValidity 2/2: lastModified = 1137439974166

// recycle starts

sitemap.log 5705:  DEBUG   (2006-01-18) 20:39.37:815   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: recycle 1/2

// some nonrelevant messages left out here

sitemap.log 5710:  DEBUG   (2006-01-18) 20:39.37:822   [sitemap] (/cocoon/
protected/admin/status/service/overview) Thread-12/AbstractJapsGenerator: 
DocumentGenerator#2: recycle 2/2

// recycle has returned

----------- log excerpt end ---------

"DocumentGenerator#2" means "DocumentGenerator instance with instance id 2". 
The instance id is a unique number attached to each instance, so you can see 
that both setup() calls are from the same generator instance. Also, the URI 
and the thread are the same.

Another striking fact is that between the two setup calls, no recycle is 
called. 

> > in fact, it seem to happens only if the generator
> > is applied to a document that is an XSL stylesheet.
>
> What does this mean?

The purpose of the generator is to get documents from a database, create XML 
representations of them and send them to the pipeline. The documents are of 
various types. One of the types is "XSL stylesheet". Only with this type the 
problem occurs (as far as we know).

Any more ideas/help are welcome,
best regards

Tilman

Re: setup() called twice in one request

Posted by Tilman Rassy <ra...@math.TU-Berlin.DE>.
On Friday 20 January 2006 01:22, Ralph Goers wrote:
> Joerg Heinicke wrote:
> > On 19.01.2006 19:01, Tilman Rassy wrote:
> >> Our XSL stylesheets usually include other stylesheets. As far as I
> >> know, the caching mechanism takes this into account. May the problem
> >> have something to do with that?
>
> Are you including the other stylesheets using a cocoon pipeline as the url?

Yes. The include URL use the "cocoon:" pseudo-protocol. The URL points to a 
pipeline that takes a stylesheet from a database, does some transformation, 
and seralizes it.

If you are interested in more detailes on my problem (of corse I hope you 
are ;-), please see my reply to the mail from Ralph Goers. You will also find 
an excerpt from the logs there.

Best regards,
Tilman Rassy

Re: setup() called twice in one request

Posted by Ralph Goers <Ra...@dslextreme.com>.

Joerg Heinicke wrote:

> On 19.01.2006 19:01, Tilman Rassy wrote:
>
>
>> Our XSL stylesheets usually include other stylesheets. As far as I 
>> know, the caching mechanism takes this into account. May the problem 
>> have something to do with that?
>
Are you including the other stylesheets using a cocoon pipeline as the url?

Re: setup() called twice in one request

Posted by Joerg Heinicke <jo...@gmx.de>.
On 19.01.2006 19:01, Tilman Rassy wrote:

> we discovered that the setup() method of a custom generator is sometimes 
> called twice in one request.

Are you sure that it is only one request. For example using the Acrobat 
Reader in IE results in two requests.

> in fact, it seem to happens only if the generator 
> is applied to a document that is an XSL stylesheet.

What does this mean?

> Is it normal that setup() is called more than once per request, or may it be a 
> bug?

For normal circumstances this sounds a bit weird indeed :)

> Can the problem be related to the caching mechanism? (The custom generator is 
> cacheable; and between the two setup() calls the caching methods were called, 
> see above)

AFAIK the caching calls are ok up to the first getValidity. I don't know 
why it is called twice.

> Our XSL stylesheets usually include other stylesheets. As far as I know, the 
> caching mechanism takes this into account. May the problem have something to 
> do with that?

In the past the problem was more in the other direction: Cocoon did not 
detect all changes to included stylesheets, only a change to the root 
stylesheet caused a reload. So I don't think this causes the problem - 
but you never know ;)

Jörg