From 8deaa64751c6db3bdb8b3ef5920ab6cca9cbd50a Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Mon, 22 Aug 2011 21:07:34 +0000 Subject: [PATCH] avoid retaining references to dropped CFS objects in CompactionManager.estimatedCompactions patch by Dan LaRocque; reviewed by jbellis for CASSANDRA-2708 git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1160436 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 2 ++ src/java/org/apache/cassandra/db/CompactionManager.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index f24d5b213d..69c6df83ff 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -5,6 +5,8 @@ resultset expansion case (CASSANDRA-2964) * (Hadoop) fail jobs when Cassandra node has failed but TaskTracker has not (CASSANDRA-2388) + * avoid retaining references to dropped CFS objects in + CompactionManager.estimatedCompactions (CASSANDRA-2708) 0.7.8 diff --git a/src/java/org/apache/cassandra/db/CompactionManager.java b/src/java/org/apache/cassandra/db/CompactionManager.java index c2439930e5..694e115ab9 100644 --- a/src/java/org/apache/cassandra/db/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/CompactionManager.java @@ -33,6 +33,7 @@ import java.util.concurrent.locks.ReentrantLock; import javax.management.MBeanServer; import javax.management.ObjectName; +import com.google.common.collect.MapMaker; import org.apache.commons.collections.PredicateUtils; import org.apache.commons.collections.iterators.FilterIterator; import org.apache.commons.lang.StringUtils; @@ -76,7 +77,7 @@ public class CompactionManager implements CompactionManagerMBean } private CompactionExecutor executor = new CompactionExecutor(); - private Map estimatedCompactions = new NonBlockingHashMap(); + private Map estimatedCompactions = new MapMaker().concurrencyLevel(1).weakKeys().makeMap(); public Lock getCompactionLock() {