cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carsten Ziegeler <>
Subject Re: [2.2] ThreadLocal use in PoolableProxyHandler
Date Fri, 03 Jul 2009 12:20:34 GMT
Alexander Daniel wrote:
> On 03.07.2009, at 10:41, Carsten Ziegeler wrote:
>> Alexander Daniel wrote:
>>> Does somebody know why ThreadLocal is used in PoolableProxyHandler [1]
>>> for the componentHolder in Cocoon 2.2?
>> Sure :)
>> Whenever components are taken out of the pool they need to be put back
>> somehow, so they are available for other clients again.
>> We use a thread local which is cleared when the request finishes,
>> so all used components get back into the pool.
> Thanks for the answer Carsten. What you describe is done by the
> destruction callback mechanism of Spring. But why can't we simply use a
> direct reference [2] to the component? Why is a ThreadLocal used as key
> to the component?
Hmm, not sure if I understand you correctly.
The poolable factory returns a single instance to spring which is the
proxy - spring has no knowledge of poolable components.
Therefore the proxy together with a thread local is used to internally
forward the method calls to instances from the pool. There is a separate
instance per thread - otherwise you would run into multi-threading
issues as the same instance would be used across requests.

Carsten Ziegeler

View raw message