[
https://issues.apache.org/jira/browse/JCS-161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ryan Fong updated JCS-161:
--------------------------
Attachment: commons-jcs-core.patch
I'm attaching a patch file as a suggestion to fix the problem I reported. The
CompsiteCache leaks the ShrinkerThread and the BlockDiskCache leaks an
anonymous Runnable.
It looks like [~tv]'s changes for JCS-130 remove the problem of the
IndexedDiskCacheManager & BlockDiskCacheManager's strong reference via the
caches Map, so no further changes are needed there.
> dynamic regions leak memory upon dispose due to ShrinkerTask
> ------------------------------------------------------------
>
> Key: JCS-161
> URL: https://issues.apache.org/jira/browse/JCS-161
> Project: Commons JCS
> Issue Type: Bug
> Components: Composite Cache
> Affects Versions: jcs-2.0-beta-1
> Reporter: Ryan Fong
> Priority: Critical
> Attachments: commons-jcs-core.patch
>
>
> Creating a dynamic region via JCS.defineRegion and then destroying it via
> ComposeCacheManager.free does not fully reclaim all memory when the memory
> shrinker is enabled.
> When shrinking is enabled, the
> org.apache.commons.jcs.engine.memory.shrinking.ShrinkerThread retains a
> pointer to CompositeCache which is never reclaimed.
> A simple solution would be to have
> org.apache.commons.jcs.engine.control.CompositeCache.setScheduledExecutorService(ScheduledExecutorService)
> retain the ScheduledFuture as a field. When CompositeCache.disposed is
> called, we should call ScheduledFuture.cancel.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)