EhcacheShiroManager leaks CacheManagers
nenko-tabakov opened this issue · 0 comments
nenko-tabakov commented
Calling EhcacheShiroManager.init()
followed by EhcacheShiroManager.setCacheManager
will make the EhCache's CacheManager created by 'EhcacheShiroManager' unreachable. Consider the following test case:
EhcacheShiroManager ehcacheShiroManager = new EhcacheShiroManager();
ehcacheShiroManager.init();
CacheManager firstCacheManager = ehcacheShiroManager.getCacheManager();
Assert.assertNotNull(firstCacheManager);
ehcacheShiroManager.setCacheManager(cacheManager);
CacheManager secondCacheManager = ehcacheShiroManager.getCacheManager();
Assert.assertNotSame(firstCacheManager, secondCacheManager);
Assert.assertNotEquals(firstCacheManager, secondCacheManager);
ehcacheShiroManager.destroy();
Assert.assertEquals(Status.UNINITIALIZED, firstCacheManager.getStatus());
Assert.assertEquals(Status.UNINITIALIZED, secondCacheManager.getStatus());