commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ryan Fong (JIRA)" <>
Subject [jira] [Updated] (JCS-161) dynamic regions leak memory upon dispose due to ShrinkerTask
Date Mon, 09 May 2016 04:14:12 GMT


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:
>             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
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

This message was sent by Atlassian JIRA

View raw message