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<>();

Reply via email to