ehcache / ehcache3

Ehcache 3.x line
http://www.ehcache.org
Apache License 2.0
2.02k stars 581 forks source link

Memory leak when using Eh107CacheManager.getCacheNames() #3235

Open pbaddi opened 4 months ago

pbaddi commented 4 months ago

Hi,

There is Memory leak when using Eh107CacheManager.getCacheNames() as per https://github.com/ehcache/ehcache3/issues/3229.

I am upgrading net.sf.ehcache ehcache from 2.10.6 to org.ehcache ehcache with 3.10.8 jakarta as classifier. URL configUrl = getClass().getResource("/ehcache.xml"); CachingProvider cachingProvider = Caching.getCachingProvider("org.ehcache.jsr107.EhcacheCachingProvider"); javax.cache.CacheManager cacheManager = cachingProvider.getCacheManager(configUrl.toURI(), getClass().getClassLoader()); for (String cacheName : cacheManager.getCacheNames()) { } In many places , I am retrieveing cacheName with help of above code.

Is there any alternative get all the cache names if it creating memory leak issue?

In old code, we using below these attributes to display healthcheck of cache.

Map<String, Object> cacheMap = new TreeMap<String, Object>(); CacheConfiguration cacheConfig = cache.getCacheConfiguration(); CacheStatistics statistics = new CacheStatistics(cache); cacheMap.put("DiskExpiryThreadIntervalSeconds", cacheConfig.getDiskExpiryThreadIntervalSeconds()); cacheMap.put("DiskPersistent", cacheConfig.isDiskPersistent()); cacheMap.put("MaxElementsInMemory", cacheConfig.getMaxElementsInMemory()); cacheMap.put("MemoryStoreEvictionPolicy", cacheConfig.getMemoryStoreEvictionPolicy()); cacheMap.put("OverflowToDisk", cacheConfig.isOverflowToDisk()); cacheMap.put("InMemoryHits", statistics.getInMemoryHits());

What are alternative in 3.10.8 for above attributes.

Is there any doc/example which can help me?

Any help on this appreciated.

Thanks,