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