users@jersey.java.net

[Jersey] Re: PermGen Memory Leak in Tomcat

From: Jakub Podlesak <jakub.podlesak_at_oracle.com>
Date: Thu, 13 Oct 2011 15:18:07 +0200

Looks like Tomcat >= 7.0.6 fixes the issue (see [1]).

Any chance you can update your Tomcat?

~Jakub

[1]http://wiki.apache.org/tomcat/MemoryLeakProtection#customThreadLocal

On 11.10.2011 16:59, Jakub Podlesak wrote:
> Hi Stephen,
>
> I am afraid Jersey does not remove it's thread locals
> and there is currently no way to force Jersey to clean up properly.
> We need to fix that.
>
> Could you please file a bug report [1] to track this?
>
> Thanks,
>
> ~Jakub
>
> [1]http://java.net/jira/browse/JERSEY/
>
> On 29.9.2011 12:56, DaveCrystal wrote:
>> Hello, I am using Jersey 1.9.1 with spring to create a rest web service
>> hosted in Tomcat.
>>
>> The application follows the pattern in this example.
>> http://blogs.oracle.com/enterprisetechtips/entry/jersey_and_spring
>>
>> When the web application is undeployed Tomcat logs a warning that the
>> application has created a ThreadLocal and not removed it:
>>
>> SEVERE: The web application [/sandbox] created a ThreadLocal with key of
>> type [null] (value
>> [com.sun.jersey.core.impl.provider.xml.ThreadLocalSingletonContextProvider$1_at_])
>>
>> and a value of type
>> [com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl] (value
>> [com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl_at_f76983]) but
>>
>> failed to remove it when the web application was stopped. This is very
>> likely to create a memory leak.
>>
>> After deploying and undeploying the app several times Tomcat runs out of
>> PermGen space.
>>
>> Any advice on how I can cause Jersey to clean up the Thread Locals on
>> undeploy would be much appreceiated.
>>
>> Thanks a lot.
>>
>> --
>> View this message in context:
>> http://jersey.576304.n2.nabble.com/PermGen-Memory-Leak-in-Tomcat-tp6843479p6843479.html
>> Sent from the Jersey mailing list archive at Nabble.com.
>>
>