Author: jbellis
Date: Tue Aug 30 21:15:46 2011
New Revision: 1163394

URL: http://svn.apache.org/viewvc?rev=1163394&view=rev
Log:
make Range and Bounds objects client-safe
patch by Mck SembWever and jbellis for CASSANDRA-3108

Modified:
    cassandra/branches/cassandra-0.8/CHANGES.txt
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Bounds.java
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Range.java

Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1163394&r1=1163393&r2=1163394&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Aug 30 21:15:46 2011
@@ -45,6 +45,8 @@
    in the same cluster (CASSANDRA-3023)
  * Add validation that Keyspace names are case-insensitively unique 
(CASSANDRA-3066)
  * catch invalid key_validation_class before instantiating UpdateColumnFamily 
(CASSANDRA-3102)
+ * make Range and Bounds objects client-safe (CASSANDRA-3108)
+
 
 0.8.4
  * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972)

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Bounds.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Bounds.java?rev=1163394&r1=1163393&r2=1163394&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Bounds.java 
(original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Bounds.java 
Tue Aug 30 21:15:46 2011
@@ -47,7 +47,7 @@ public class Bounds extends AbstractBoun
 
     public AbstractBounds createFrom(Token token)
     {
-        return new Bounds(left, token);
+        return new Bounds(left, token, partitioner);
     }
 
     public List<AbstractBounds> unwrap()

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Range.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Range.java?rev=1163394&r1=1163393&r2=1163394&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Range.java 
(original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/dht/Range.java 
Tue Aug 30 21:15:46 2011
@@ -146,7 +146,8 @@ public class Range extends AbstractBound
             if (!(left.compareTo(that.right) < 0 && that.left.compareTo(right) 
< 0))
                 return Collections.emptySet();
             return rangeSet(new Range((Token)ObjectUtils.max(this.left, 
that.left),
-                                      (Token)ObjectUtils.min(this.right, 
that.right)));
+                                      (Token)ObjectUtils.min(this.right, 
that.right),
+                                      partitioner));
         }
         if (thiswraps && thatwraps)
         {
@@ -174,8 +175,8 @@ public class Range extends AbstractBound
     {
         Set<Range> intersection = new HashSet<Range>(2);
         if (that.right.compareTo(first.left) > 0)
-            intersection.add(new Range(first.left, that.right));
-        intersection.add(new Range(that.left, first.right));
+            intersection.add(new Range(first.left, that.right, 
first.partitioner));
+        intersection.add(new Range(that.left, first.right, first.partitioner));
         return Collections.unmodifiableSet(intersection);
     }
 
@@ -183,10 +184,10 @@ public class Range extends AbstractBound
     {
         Set<Range> intersection = new HashSet<Range>(2);
         if (other.contains(wrapping.right))
-            intersection.add(new Range(other.left, wrapping.right));
+            intersection.add(new Range(other.left, wrapping.right, 
wrapping.partitioner));
         // need the extra compareto here because ranges are asymmetrical; 
wrapping.left _is not_ contained by the wrapping range
         if (other.contains(wrapping.left) && 
wrapping.left.compareTo(other.right) < 0)
-            intersection.add(new Range(wrapping.left, other.right));
+            intersection.add(new Range(wrapping.left, other.right, 
wrapping.partitioner));
         return Collections.unmodifiableSet(intersection);
     }
 
@@ -194,7 +195,7 @@ public class Range extends AbstractBound
     {
         if (token.equals(left))
             return null;
-        return new Range(left, token);
+        return new Range(left, token, partitioner);
     }
 
     public List<AbstractBounds> unwrap()
@@ -202,8 +203,8 @@ public class Range extends AbstractBound
         if (!isWrapAround() || right.equals(partitioner.getMinimumToken()))
             return (List)Arrays.asList(this);
         List<AbstractBounds> unwrapped = new ArrayList<AbstractBounds>(2);
-        unwrapped.add(new Range(left, partitioner.getMinimumToken()));
-        unwrapped.add(new Range(partitioner.getMinimumToken(), right));
+        unwrapped.add(new Range(left, partitioner.getMinimumToken(), 
partitioner));
+        unwrapped.add(new Range(partitioner.getMinimumToken(), right, 
partitioner));
         return unwrapped;
     }
 
@@ -272,9 +273,9 @@ public class Range extends AbstractBound
         ArrayList<Range> difference = new ArrayList<Range>();
 
         if (!left.equals(contained.left))
-            difference.add(new Range(left, contained.left));
+            difference.add(new Range(left, contained.left, partitioner));
         if (!right.equals(contained.right))
-            difference.add(new Range(contained.right, right));
+            difference.add(new Range(contained.right, right, partitioner));
         return difference;
     }
 


Reply via email to