[ http://issues.apache.org/jira/browse/JCR-625?page=comments#action_12448082 ] Jukka Zitting commented on JCR-625: -----------------------------------
A simpler alternative to using the factory pattern would be to pull the instantiation of the cache as high up the call chain as possible. It would still be cleaner to pass the cache instance to an ItemStateManager than the CacheManager, since the manager is really a detail of the cache implementation and should not be exposed to other components like the ItemStatemanagers. > 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 > Components: core > Environment: No released version is affected, only trunk: svn > revision 471800. > Reporter: Marcel Reutegger > Priority: Minor > Attachments: cacheManager3.txt > > > 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
