users@glassfish.java.net

Re: EJBClassLoader - huge number of streams

From: <glassfish_at_javadesktop.org>
Date: Fri, 29 Oct 2010 06:32:43 PDT

I could not tell from your latest post whether you tried setting a breakpoint at the SentinelInputStream constructor and then look at the whole stack at that point.

I know that EJBClassLoader will be the immediate caller to the constructor. What we want to find out is the call structure upstream from there. What code is causing the class loader to create the sentinel stream? That should begin to point in the right direction. So if you can set a breakpoint there and examine the call stack for the suspended thread that might help.

The done method is typically invoked by the container when the application is unloaded (disabled) or undeployed or during app server shutdown. I cannot remember if done is also invoked if the EJBClassLoader's finalize method is invoked. But in any case the intent is to clean up any streams that were opened by the class loader on behalf of the application but had not been closed already.

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

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