users@glassfish.java.net

Re: Autodeploying multiple times causes OutOfMemoryError in PermGen

From: <glassfish_at_javadesktop.org>
Date: Thu, 15 Mar 2007 11:00:25 PST

It's possible that the classes loaded from the locked JARs are not unloaded, but that would not be the result of the JARs being locked. In fact, it would more likely be the other way around: the JARs may be locked because a class loader still retains one or more classes loaded from those JARs.

The GlassFish-provided class loader is written to close any JARs it has opened. The same is not true for the JDK's URLClassLoader. It's possible that one or more of the libraries involved here is using URLClassLoader or is otherwise opening streams to the JARs without closing them.

As I always suggest with locked JARs, please read this blog post

http://blogs.sun.com/quinn/entry/tool_for_diagnosing_failed_glassfish

and use the tool described there. (The tool helps to identify the code that opens but does not close a JAR file.) Follow the instructions carefully to get meaningful output from the tool. Then please post the results here.

- Tim
[Message sent by forum member 'tjquinn' (tjquinn)]

http://forums.java.net/jive/thread.jspa?messageID=208216