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