[ http://issues.apache.org/jira/browse/JCR-625?page=comments#action_12447783 ] Marcel Reutegger commented on JCR-625: --------------------------------------
How about starting the background thread only when there are caches to manage? Or stop the background thread when there are no more caches to manage respectively? > Memory is not freed up when jackrabbit-server war is redeployed in tomcat > ------------------------------------------------------------------------- > > Key: JCR-625 > URL: http://issues.apache.org/jira/browse/JCR-625 > Project: Jackrabbit > Issue Type: Bug > Environment: No released version is affected, only trunk: svn > revision 471800. > Reporter: Marcel Reutegger > Priority: Minor > > This bug was introduced with the new CacheManager feature. See JCR-619. > The CacheManager starts a new background thread which optimizes memory > distribution every second accross the various caches. When a jackrabbit > repository is shutdown, this background thread is still running and prevents > the GC from collecting the classloader when jackrabbit is deployed in a web > application. > Steps to reproduce: > 1) build jackrabbit and jcr-server from trunk and deploy into a tomcat > 2) touch the web.xml file of the jcr-server web app (this will force a > redeployment) > After step 2 two things may happen. Either: > - The memory consumption increases because the CacheManager thread is not > shutdown > or > - The CacheManager thread dies unexpectedly with a NullPointerException: > Exception in thread "org.apache.jackrabbit.core.state.CacheManager" > java.lang.NullPointerException > at > org.apache.jackrabbit.core.state.CacheManager.run(CacheManager.java:90) > at java.lang.Thread.run(Unknown Source) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira