You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/11/22 10:51:29 UTC
svn commit: r1204884 - in /cassandra/branches/cassandra-0.8: CHANGES.txt
src/java/org/apache/cassandra/gms/FailureDetector.java
Author: slebresne
Date: Tue Nov 22 09:51:28 2011
New Revision: 1204884
URL: http://svn.apache.org/viewvc?rev=1204884&view=rev
Log:
Fix ConcurrentModificationException in FailureDetector
patch by amorton; reviewed by slebresne for CASSANDRA-3519
Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1204884&r1=1204883&r2=1204884&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Nov 22 09:51:28 2011
@@ -39,6 +39,7 @@
* Make counter shard merging thread safe (CASSANDRA-3178)
* Fix bug preventing the use of efficient cross-DC writes (CASSANDRA-3472)
* (Hadoop) skip empty rows when entire row is requested, redux (CASSANDRA-2855)
+ * fix concurrence issue in the FailureDetector (CASSANDRA-3519)
0.8.7
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java?rev=1204884&r1=1204883&r2=1204884&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/gms/FailureDetector.java Tue Nov 22 09:51:28 2011
@@ -22,6 +22,7 @@ import java.io.*;
import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
import javax.management.MBeanServer;
import javax.management.ObjectName;
@@ -47,7 +48,7 @@ public class FailureDetector implements
private static int phiConvictThreshold_;
private Map<InetAddress, ArrivalWindow> arrivalSamples_ = new Hashtable<InetAddress, ArrivalWindow>();
- private List<IFailureDetectionEventListener> fdEvntListeners_ = new ArrayList<IFailureDetectionEventListener>();
+ private List<IFailureDetectionEventListener> fdEvntListeners_ = new CopyOnWriteArrayList<IFailureDetectionEventListener>();
public FailureDetector()
{