Author: brandonwilliams
Date: Sat May  7 01:43:23 2011
New Revision: 1100429

URL: http://svn.apache.org/viewvc?rev=1100429&view=rev
Log:
Avoid race in AdaptiveLatencyTracker between add() and clear()
Patch by brandonwilliams, reviewed by tjake for CASSANDRA-2618

Modified:
    
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java?rev=1100429&r1=1100428&r2=1100429&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
 Sat May  7 01:43:23 2011
@@ -285,7 +285,14 @@ class AdaptiveLatencyTracker extends Abs
     {
         if (!latencies.offer(i))
         {
-            latencies.remove();
+            try
+            {
+                latencies.remove();
+            }
+            catch (NoSuchElementException e)
+            {
+                // oops, clear() beat us to it
+            }
             latencies.offer(i);
         }
     }


Reply via email to