cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reinhard Poetz <reinh...@apache.org>
Subject Re: [2.2] Weird NPE when concurrency
Date Thu, 31 Jan 2008 21:42:26 GMT
Thorsten Scherler wrote:
> On Thu, 2008-01-31 at 21:41 +0100, Reinhard Poetz wrote:
>> Thorsten Scherler wrote:
>>> Hi all,
>>>
>>> we have build a webapp based on cocoon 2.2. Everything is working fine
>>> if a single person is using the app, but as soon as we have concurrent
>>> user the code fails with NPE in different lines of the code.
>>>
>>> My questions are:
>>> Every pipeline is thread safe, right?
>>> The mounts to the different servlet (blocks) is synchronized, right?
>>> Is there a connection timeout for inner block communications?
>>>
>>> The architecture is as follow:
>>> main webapp - mounts dispatcher sitemap (from block)
>>>
>>> Main match:
>>>  <map:match pattern="**.html">
>>>         <map:generate src="lm://resolve.structurer.{1}" type="jx">
>>>           <map:parameter name="lenient-xpath" value="true"/>
>>>           <map:parameter name="getRequest" value="{1}"/>
>>>           <map:parameter name="contextPath"
>>> value="{request:contextPath}"/>
>>>           <map:parameter name="getRequestExtension" value="html"/>
>>>         </map:generate>
>>>         <map:transform type="dispatcher">
>>>           <map:parameter name="cacheKey" value="{0}"/>
>>>           <map:parameter name="validityFile"
>>>             value="lm://resolve.structurer.{1}"/>
>>>           <map:parameter name="request" value="{1}"/>
>>>           <map:parameter name="type" value="html"/>
>>>           <map:parameter name="hooksTransformer"
>>> value="lm://hooks-to-html.xsl"/>
>>>         </map:transform>
>>>         <map:transform src="lm://namespace-stripped"/>
>>>         <map:transform src="lm://strip-dispatcher-remains-html.xsl"/>
>>>         <map:serialize type="xhtml"/>
>>>       </map:match>
>> Have you made sure that your dispatcher transformer is configured correctly? If 
>> it is *not* threadsafe, you have to use the "prototype" scope. Otherwise you can

>> use the "singleton" scope (which is actually the default!).
> 
> This is what I always thought and how it is in 2.1 and the old 2.2.
> version of cocoon that forrest is using.
> 
> <bean id="dispatcher"
>     name="org.apache.cocoon.transformation.Transformer/dispatcher"
>     class="org.apache.forrest.dispatcher.transformation.DispatcherTransformer">
>     <property name="manager" ref="org.apache.avalon.framework.service.ServiceManager"/>
>   </bean>

Just to be clear, if you configure you transformer like this, it has to be 
threadsafe.

-- 
Reinhard Pötz                            Managing Director, {Indoqa} GmbH
                           http://www.indoqa.com/en/people/reinhard.poetz/

Member of the Apache Software Foundation
Apache Cocoon Committer, PMC member, PMC Chair        reinhard@apache.org
_________________________________________________________________________

Mime
View raw message