Updated Branches:
  refs/heads/trunk 2b53cf78f -> cd85daf8c

Fix bug in Range.intersects(Bound)

patch by slebresne; reviewed by jbellis for CASSANDRA-5771


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bbdbc0d1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bbdbc0d1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bbdbc0d1

Branch: refs/heads/trunk
Commit: bbdbc0d1d92717eb05ddf674641875296ff94802
Parents: 9382c4b
Author: Sylvain Lebresne <sylv...@datastax.com>
Authored: Wed Jul 17 18:59:04 2013 +0200
Committer: Sylvain Lebresne <sylv...@datastax.com>
Committed: Thu Jul 18 08:53:10 2013 +0200

----------------------------------------------------------------------
 CHANGES.txt                                  | 1 +
 src/java/org/apache/cassandra/dht/Range.java | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bbdbc0d1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 09f4c7b..4886aa4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -18,6 +18,7 @@
  * Fix pathetic performance of range tombstones (CASSANDRA-5677)
  * Fix querying with an empty (impossible) range (CASSANDRA-5573)
  * cqlsh: handle CUSTOM 2i in DESCRIBE output (CASSANDRA-5760)
+ * Fix minor bug in Range.intersects(Bound) (CASSANDRA-5771)
 
 
 1.2.6

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bbdbc0d1/src/java/org/apache/cassandra/dht/Range.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/dht/Range.java 
b/src/java/org/apache/cassandra/dht/Range.java
index c2d7b63..86bc514 100644
--- a/src/java/org/apache/cassandra/dht/Range.java
+++ b/src/java/org/apache/cassandra/dht/Range.java
@@ -136,7 +136,10 @@ public class Range<T extends RingPosition> extends 
AbstractBounds<T> implements
      */
     public boolean intersects(Bounds<T> that)
     {
-        return intersects(new Range<T>(that.left, that.right)) || 
contains(that.left);
+        // Same punishment than in Bounds.contains(), we must be carefull if 
that.left == that.right as
+        // as new Range<T>(that.left, that.right) will then cover the full 
ring which is not what we
+        // want.
+        return contains(that.left) || (!that.left.equals(that.right) && 
intersects(new Range<T>(that.left, that.right)));
     }
 
     public static <T extends RingPosition> Set<Range<T>> rangeSet(Range<T> ... 
ranges)

Reply via email to