I have noticed that with Tomcat 6 shutdown too. The thread local was used to 
establish the context for deserilizaling remote Endpoints replicated into the 
EndpointRegistry. We improved it using a lazy deserialization from XML when the 
Endpoint is actually used (by the time, we should already have the 
ComponentContext on the thread).

Can you do more tests based on the distributed EndpointRegistry cases so that 
we can remove it?

Thanks,
Raymond
________________________________________________________________ 
Raymond Feng
[email protected]
Apache Tuscany PMC member and committer: tuscany.apache.org
Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com
Personal Web Site: www.enjoyjava.com
________________________________________________________________

On Oct 23, 2010, at 11:48 PM, ant elder wrote:

> Tomcat 7's new memory leak detection is reporting a memory leak with
> Tuscany webapps:
> 
> SEVERE: The web application [/helloworld-jsp] created a ThreadLocal
> with key of type [java.lang.InheritableThreadLocal] (value
> [java.lang.inheritablethreadlo...@13c2d7f]) and a value of type
> [org.apache.tuscany.sca.context.CompositeContext] (value
> [org.apache.tuscany.sca.context.compositecont...@1cefde4]) but failed
> to remove it when the web application was stopped. This is very likely
> to create a memory leak.
> 23-Oct-2010 17:47:33 org.apache.catalina.loader.WebappClassLoader
> clearThreadLocalMap
> 
> I had a look at the ThreadLocal in CompositeContext and couldn't see
> anything that actually used it, taking it out all the references to it
> and a full build completes fine so nothing does use it. Is there any
> reason to keep it now?
> 
>   ...ant

Reply via email to