WAR == single classloader was: Benefits of activeReferenceQueue

Jaroslav Tulach jaroslav.tulach at oracle.com
Fri Aug 1 04:39:36 UTC 2014


Dne Út 29. července 2014 14:13:25, Florian Weimer napsal(a):
> On 07/29/2014 10:05 AM, Jaroslav Tulach wrote:
> > Plus, because there is a single classloader which loads all the classes
> > from a WAR, by keeping the activerReferenceQueue thread alive and holding
> > reference to the queue, we hold reference to its class and the
> > classloader and thus all classes referenced by it.
> > 
> > And this memory leak accumulates with every re-deploy.
> 
> Could you interrupt the thread when URLClassLoader#close() is called?

Hello Florian,
I am not sure how to hook into URLClassLoader#close? It is the container who 
creates the classloader, not my library and I don't see any way to add a 
"listener" to the close method (without a reflection).

-jt




More information about the core-libs-dev mailing list