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