diff --git a/src/java/org/apache/cassandra/dht/Range.java b/src/java/org/apache/cassandra/dht/Range.java index 67b99354d5..9eb3dfcd20 100644 --- a/src/java/org/apache/cassandra/dht/Range.java +++ b/src/java/org/apache/cassandra/dht/Range.java @@ -31,6 +31,9 @@ import org.apache.cassandra.service.StorageService; /** * A representation of the range that a node is responsible for on the DHT ring. + * + * A Range is responsible for the tokens between [left, right). + * * Author : Avinash Lakshman ( alakshman@facebook.com) & Prashant Malik ( pmalik@facebook.com ) */ @@ -46,7 +49,7 @@ public class Range implements Comparable, Serializable { return serializer_; } - + private final Token left_; private final Token right_; @@ -101,7 +104,7 @@ public class Range implements Comparable, Serializable /* * This is the range [a, b) where a < b. */ - return ( bi.compareTo(left_) >= 0 && right_.compareTo(bi) >=0 ); + return ( bi.compareTo(left_) >= 0 && right_.compareTo(bi) > 0 ); } else { diff --git a/test/unit/org/apache/cassandra/dht/RangeTest.java b/test/unit/org/apache/cassandra/dht/RangeTest.java index 22ec8e391e..a617972246 100644 --- a/test/unit/org/apache/cassandra/dht/RangeTest.java +++ b/test/unit/org/apache/cassandra/dht/RangeTest.java @@ -24,13 +24,17 @@ public class RangeTest { @Test public void testRange() { Range left = new Range(new BigIntegerToken("0"), new BigIntegerToken("100")); + assert left.contains(new BigIntegerToken("0")); assert left.contains(new BigIntegerToken("10")); assert !left.contains(new BigIntegerToken("-1")); + assert !left.contains(new BigIntegerToken("100")); assert !left.contains(new BigIntegerToken("101")); Range right = new Range(new BigIntegerToken("100"), new BigIntegerToken("0")); + assert right.contains(new BigIntegerToken("100")); assert right.contains(new BigIntegerToken("200")); assert right.contains(new BigIntegerToken("-10")); + assert !right.contains(new BigIntegerToken("0")); assert !right.contains(new BigIntegerToken("1")); } }