tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <>
Subject RE: Headstart on "Resolving OOM-PermGen errors on webapp reload"
Date Wed, 22 Apr 2009 17:18:38 GMT
Yeah, Insane just using reflection and a graph traversal algorithm to get the job done.  It
looks like this is implemented by org.netbeans.insane.impl.InsaneEngine. 

Oh, and I found my copy of the Insane source.  The third argument to ScannerUtils.scan() should
be true since that is what signals to InsaneEngine that static fields should be traversed
during the heap walk.

-----Original Message-----
From: Christopher Schultz [] 
Sent: Wednesday, April 22, 2009 9:05 AM
To: Tomcat Users List
Subject: Re: Headstart on "Resolving OOM-PermGen errors on webapp reload"

Hash: SHA1


On 4/21/2009 10:27 PM, wrote:
> Ok, so my wife actually wrote a couple of month ago in Japanese about
> using strategy for leveraging the Insane library and a continuous
> integration server in order to prevent webapp classloader leakage
> issues from creeping in.

I'll definitely take a look at this (in English -- tell her thanks!).

> With this in place, you can then setup your test environment to
> exercise a given webapp, shut it down, and then invoke your
> ScannerUtils code to see if that the webapp's classloader is still
> hanging around.

This is super sexy! What a nice job. I'll have to read-up on the Insane
library, but my suspicion is that you probably don't really need it...
all the RTTI information is available from the objects themselves, and
the code should be relatively simple.... just tons and tons of loops and
recursive calls.

> A word of warning... this is a very heavy weight operation.

Heh, you think? That's why this type of testing should be done in
development and not in production ;

- -chris
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla -


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message