fix CME in StreamResultFuture patch by Mikhail Stepura; reviewed by jbellis for CASSANDRA-6129
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6529d730 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6529d730 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6529d730 Branch: refs/heads/trunk Commit: 6529d7309a72916d9efd126a281801b9cfae7d68 Parents: 56b0e7b Author: Jonathan Ellis <jbel...@apache.org> Authored: Fri Oct 4 19:41:58 2013 -0500 Committer: Jonathan Ellis <jbel...@apache.org> Committed: Fri Oct 4 19:42:21 2013 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/streaming/StreamResultFuture.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6529d730/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index acd4d52..6a7c3fe 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.2 + * Fix race conditions in bulk loader (CASSANDRA-6129) * Add configurable metrics reporting (CASSANDRA-4430) * drop queries exceeding a configurable number of tombstones (CASSANDRA-6117) * Track and persist sstable read activity (CASSANDRA-5515) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6529d730/src/java/org/apache/cassandra/streaming/StreamResultFuture.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/streaming/StreamResultFuture.java b/src/java/org/apache/cassandra/streaming/StreamResultFuture.java index 979c19a..ccd3c92 100644 --- a/src/java/org/apache/cassandra/streaming/StreamResultFuture.java +++ b/src/java/org/apache/cassandra/streaming/StreamResultFuture.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.util.*; +import java.util.concurrent.ConcurrentLinkedQueue; import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.AbstractFuture; @@ -48,7 +49,7 @@ public final class StreamResultFuture extends AbstractFuture<StreamState> public final UUID planId; public final String description; - private final List<StreamEventHandler> eventListeners = Collections.synchronizedList(new ArrayList<StreamEventHandler>()); + private final Collection<StreamEventHandler> eventListeners = new ConcurrentLinkedQueue<>(); private final Map<InetAddress, StreamSession> ongoingSessions; private final Map<InetAddress, SessionInfo> sessionStates = new NonBlockingHashMap<>();