users@glassfish.java.net

Re: Autodeploying multiple times causes OutOfMemoryError in PermGen

From: Jan Luehe <Jan.Luehe_at_Sun.COM>
Date: Thu, 26 Apr 2007 19:22:48 -0700

glassfish_at_javadesktop.org wrote On 04/26/07 06:24 PM,:

>I noticed with b44 that the bug associated with this thread (2375) has been marked as fixed. Unfortunately that does not seem to be the case, although it has improved somewhat.
>
>

Thanks for the update, Cameron!

>On the plus side there are no longer any jars held open by the jsr199 compiler.
>

That's good news.

>However, there are still many jars held open by the EJB class loader. They all seem to be held open by an interceptor on an EJB method call. At least that's what I think the following few lines mean:
>
>
>com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(com\sun\enterprise\admin\util\proxy\ProxyClass.java:77)
>$Proxy1.invoke(-unknown-:-1)
>com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(com\sun\enterprise\admin\server\core\jmx\SunoneInterceptor.java:297)
>
>I have uploaded the new output from ZipFileMonitor to http://ctr.id.au/openJars3.txt for Tim/Jan to have a look at.
>
>

Thanks! The stack trace you mention is executed during deployment, when
the EJB class loader
is initialized and opens the app's JAR files. Looks like the EJB class
loader does not release those JAR files
during undeployment, either because it is not getting notified of the
undeployment, or because it ignores
the notification.

>Could someone please re-open issue 2375?
>
>

Done! I've reassigned the issue to the ejb_container category, based on
the output
from ZipFileMonitor that you provided.

Thanks,


Jan