You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/12/11 05:12:48 UTC

svn commit: r889499 - in /incubator/cassandra/trunk: ./ interface/ interface/gen-java/org/apache/cassandra/service/ src/java/org/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/dht/ src/java/org/apache/cassandra/io/ src/java/org/apache...

Author: jbellis
Date: Fri Dec 11 04:12:48 2009
New Revision: 889499

URL: http://svn.apache.org/viewvc?rev=889499&view=rev
Log:
merge from 0.5 branch

Modified:
    incubator/cassandra/trunk/   (props changed)
    incubator/cassandra/trunk/CHANGES.txt
    incubator/cassandra/trunk/build.xml
    incubator/cassandra/trunk/interface/cassandra.thrift
    incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Cassandra.java   (props changed)
    incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Column.java   (props changed)
    incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Constants.java
    incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java   (props changed)
    incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/NotFoundException.java   (props changed)
    incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/SuperColumn.java   (props changed)
    incubator/cassandra/trunk/src/java/org/   (props changed)
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/CollatingOrderPreservingPartitioner.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
    incubator/cassandra/trunk/test/unit/org/   (props changed)
    incubator/cassandra/trunk/test/unit/org/apache/cassandra/service/ReadResponseResolverTest.java

Propchange: incubator/cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 04:12:48 2009
@@ -1,2 +1,3 @@
 /incubator/cassandra/branches/cassandra-0.3:774578-796573
 /incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5:888872-889497

Modified: incubator/cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/CHANGES.txt?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/CHANGES.txt (original)
+++ incubator/cassandra/trunk/CHANGES.txt Fri Dec 11 04:12:48 2009
@@ -1,4 +1,8 @@
-0.5.0 dev
+0.5.0 RC1
+ * Fix potential NPE in get_range_slice (CASSANDRA-623)
+
+
+0.5.0 beta 2
  * Bootstrap improvements (several tickets)
  * add nodeprobe repair anti-entropy feature (CASSANDRA-193, CASSANDRA-520)
  * fix possibility of partition when many nodes restart at once
@@ -20,6 +24,7 @@
    incorrectly (and temporarily) marked as down (CASSANDRA-610)
  * respect memtable thresholds during log replay (CASSANDRA-609)
  * support ConsistencyLevel.ALL on read (CASSANDRA-584)
+ * add nodeprobe removetoken command (CASSANDRA-564)
 
 
 0.5.0 beta

Modified: incubator/cassandra/trunk/build.xml
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/build.xml?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/build.xml (original)
+++ incubator/cassandra/trunk/build.xml Fri Dec 11 04:12:48 2009
@@ -37,7 +37,7 @@
     <property name="test.name" value="*Test"/>
     <property name="test.unit.src" value="${test.dir}/unit"/>
     <property name="dist.dir" value="${build.dir}/dist"/>
-    <property name="version" value="0.4.2"/>
+    <property name="version" value="0.5.0-beta2"/>
     <property name="final.name" value="${ant.project.name}-${version}"/>
 
     <!-- http://cobertura.sourceforge.net/ -->

Modified: incubator/cassandra/trunk/interface/cassandra.thrift
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/interface/cassandra.thrift?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/interface/cassandra.thrift (original)
+++ incubator/cassandra/trunk/interface/cassandra.thrift Fri Dec 11 04:12:48 2009
@@ -40,7 +40,7 @@
 # no promises are made other than "if both are equal, you're good."
 # in particular, don't try to parse numeric information out and assume
 # that a "greater" version is a superset of a "smaller" one.
-const string VERSION = "0.5-beta1"
+const string VERSION = "0.5-beta2"
 
 
 #

Propchange: incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 04:12:48 2009
@@ -1,3 +1,4 @@
 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Cassandra.java:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Cassandra.java:888872-889497
 /incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Cassandra.java:749219-768588

Propchange: incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 04:12:48 2009
@@ -1,4 +1,5 @@
 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Column.java:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Column.java:888872-889497
 /incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Column.java:749219-794428
 /incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/column_t.java:749219-768588

Modified: incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Constants.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Constants.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Constants.java (original)
+++ incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/Constants.java Fri Dec 11 04:12:48 2009
@@ -40,6 +40,6 @@
 
 public class Constants {
 
-  public static final String VERSION = "0.5-beta1";
+  public static final String VERSION = "0.5-beta2";
 
 }

Propchange: incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 04:12:48 2009
@@ -1,3 +1,4 @@
 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:888872-889497
 /incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:749219-768588

Propchange: incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 04:12:48 2009
@@ -1,3 +1,4 @@
 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:888872-889497
 /incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:749219-768588

Propchange: incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 04:12:48 2009
@@ -1,4 +1,5 @@
 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:888872-889497
 /incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:749219-794428
 /incubator/cassandra/trunk/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:749219-768588

Propchange: incubator/cassandra/trunk/src/java/org/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 04:12:48 2009
@@ -1,3 +1,4 @@
 /incubator/cassandra/branches/cassandra-0.3/src/java/org:774578-796573
 /incubator/cassandra/branches/cassandra-0.4/src/java/org:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5/src/java/org:888872-889497
 /incubator/cassandra/trunk/src/java/org:749219-769885

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/BinaryMemtable.java Fri Dec 11 04:12:48 2009
@@ -132,7 +132,7 @@
         assert !columnFamilies_.isEmpty();
         logger_.info("Sorting " + this);
         List<DecoratedKey> keys = new ArrayList<DecoratedKey>(columnFamilies_.keySet());
-        Collections.sort(keys, partitioner_.getDecoratedKeyComparator());
+        Collections.sort(keys);
         return keys;
     }
 

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Fri Dec 11 04:12:48 2009
@@ -1289,8 +1289,6 @@
     {
         final DecoratedKey startWithDK = partitioner.decorateKey(startWith);
         final DecoratedKey stopAtDK = partitioner.decorateKey(stopAt);
-        // (OPP key decoration is a no-op so using the "decorated" comparator against raw keys is fine)
-        final Comparator<DecoratedKey> comparator = partitioner.getDecoratedKeyComparator();
 
         // create a CollatedIterator that will return unique keys from different sources
         // (current memtable, historical memtables, and SSTables) in the correct order.
@@ -1302,8 +1300,8 @@
         {
             public boolean apply(DecoratedKey key)
             {
-                return comparator.compare(startWithDK, key) <= 0
-                       && (stopAt.isEmpty() || comparator.compare(key, stopAtDK) <= 0);
+                return startWithDK.compareTo(key) <= 0
+                       && (stopAt.isEmpty() || key.compareTo(stopAtDK) <= 0);
             }
         };
 
@@ -1343,7 +1341,7 @@
             iterators.add(iter);
         }
 
-        Iterator<DecoratedKey> collated = IteratorUtils.collatedIterator(comparator, iterators);
+        Iterator<DecoratedKey> collated = IteratorUtils.collatedIterator(DecoratedKey.comparator, iterators);
         Iterable<DecoratedKey> reduced = new ReducingIterator<DecoratedKey, DecoratedKey>(collated) {
             DecoratedKey current;
 
@@ -1366,7 +1364,7 @@
             boolean rangeCompletedLocally = false;
             for (DecoratedKey current : reduced)
             {
-                if (!stopAt.isEmpty() && comparator.compare(stopAtDK, current) < 0)
+                if (!stopAt.isEmpty() && stopAtDK.compareTo(current) < 0)
                 {
                     rangeCompletedLocally = true;
                     break;
@@ -1411,9 +1409,6 @@
     public RangeReply getKeyRangeRaw(final DecoratedKey startWith, final DecoratedKey stopAt, int maxResults)
     throws IOException, ExecutionException, InterruptedException
     {
-        // (OPP key decoration is a no-op so using the "decorated" comparator against raw keys is fine)
-        final Comparator<DecoratedKey> comparator = partitioner.getDecoratedKeyComparator();
-
         // create a CollatedIterator that will return unique keys from different sources
         // (current memtable, historical memtables, and SSTables) in the correct order.
         List<Iterator<DecoratedKey>> iterators = new ArrayList<Iterator<DecoratedKey>>();
@@ -1424,8 +1419,8 @@
         {
             public boolean apply(DecoratedKey key)
             {
-                return comparator.compare(startWith, key) <= 0
-                       && (stopAt.isEmpty() || comparator.compare(key,  stopAt) <= 0);
+                return startWith.compareTo(key) <= 0
+                       && (stopAt.isEmpty() || key.compareTo(stopAt) <= 0);
             }
         };
 
@@ -1465,7 +1460,7 @@
             iterators.add(iter);
         }
 
-        Iterator<DecoratedKey> collated = IteratorUtils.collatedIterator(comparator, iterators);
+        Iterator<DecoratedKey> collated = IteratorUtils.collatedIterator(DecoratedKey.comparator, iterators);
         Iterable<DecoratedKey> reduced = new ReducingIterator<DecoratedKey, DecoratedKey>(collated) {
             DecoratedKey current;
 
@@ -1487,7 +1482,7 @@
             boolean rangeCompletedLocally = false;
             for (DecoratedKey current : reduced)
             {
-                if (!stopAt.isEmpty() && comparator.compare( stopAt, current) < 0)
+                if (!stopAt.isEmpty() && stopAt.compareTo(current) < 0)
                 {
                     rangeCompletedLocally = true;
                     break;

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/DecoratedKey.java Fri Dec 11 04:12:48 2009
@@ -21,6 +21,7 @@
 import java.io.DataOutput;
 import java.io.IOException;
 import java.io.DataInput;
+import java.util.Comparator;
 
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.io.ICompactSerializer2;
@@ -44,6 +45,14 @@
         return serializer;
     }
 
+    public static final Comparator<DecoratedKey> comparator = new Comparator<DecoratedKey>()
+    {
+        public int compare(DecoratedKey o1, DecoratedKey o2)
+        {
+            return o1.compareTo(o2);
+        }
+    };
+
     public final T token;
     public final String key;
 

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Fri Dec 11 04:12:48 2009
@@ -182,9 +182,8 @@
     {
         logger_.info("Sorting " + this);
         // sort keys in the order they would be in when decorated
-        Comparator<DecoratedKey> dc = partitioner_.getDecoratedKeyComparator();
         ArrayList<DecoratedKey> orderedKeys = new ArrayList<DecoratedKey>(columnFamilies_.keySet());
-        Collections.sort(orderedKeys, dc);
+        Collections.sort(orderedKeys);
         return orderedKeys;
     }
 
@@ -225,7 +224,7 @@
             // cannot create a PQ of size zero (wtf?)
             return Arrays.asList(new DecoratedKey[0]).iterator();
         }
-        PriorityQueue<DecoratedKey> pq = new PriorityQueue<DecoratedKey>(columnFamilies_.size(), partitioner_.getDecoratedKeyComparator());
+        PriorityQueue<DecoratedKey> pq = new PriorityQueue<DecoratedKey>(columnFamilies_.size());
         pq.addAll(columnFamilies_.keySet());
         return new DestructivePQIterator<DecoratedKey>(pq);
     }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/CollatingOrderPreservingPartitioner.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/CollatingOrderPreservingPartitioner.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/CollatingOrderPreservingPartitioner.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/CollatingOrderPreservingPartitioner.java Fri Dec 11 04:12:48 2009
@@ -37,16 +37,6 @@
     
     public static final BigInteger BYTE_MASK = new BigInteger("255");
 
-    /**
-     * Comparators for decorated keys.
-     */
-    private static final Comparator<DecoratedKey<BytesToken>> comparator = new Comparator<DecoratedKey<BytesToken>>() {
-        public int compare(DecoratedKey<BytesToken> o1, DecoratedKey<BytesToken> o2)
-        {
-            return FBUtilities.compareByteArrays(o1.token.token, o2.token.token);
-        }
-    };
-
     public DecoratedKey<BytesToken> decorateKey(String key)
     {
         return new DecoratedKey<BytesToken>(getToken(key), key);
@@ -62,11 +52,6 @@
         return key.key;
     }
 
-    public Comparator<DecoratedKey<BytesToken>> getDecoratedKeyComparator()
-    {
-        return comparator;
-    }
-
     public BytesToken midpoint(BytesToken ltoken, BytesToken rtoken)
     {
         int sigbytes = Math.max(ltoken.token.length, rtoken.token.length);

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/IPartitioner.java Fri Dec 11 04:12:48 2009
@@ -49,11 +49,6 @@
     public DecoratedKey<T> decorateKey(String key);
 
     /**
-     * @return a comparator for decorated key objects, not strings
-     */
-    public Comparator<DecoratedKey<T>> getDecoratedKeyComparator();
-
-    /**
      * Calculate a Token representing the approximate "middle" of the given
      * range.
      *

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java Fri Dec 11 04:12:48 2009
@@ -35,17 +35,6 @@
 
     public static final BigInteger CHAR_MASK = new BigInteger("65535");
 
-    /**
-     * Comparators for decorated keys.
-     */
-    private static final Comparator<DecoratedKey<StringToken>> comparator =
-        new Comparator<DecoratedKey<StringToken>>() {
-        public int compare(DecoratedKey<StringToken> o1, DecoratedKey<StringToken> o2)
-        {
-            return o1.key.compareTo(o2.key);
-        }
-    };
-
     public DecoratedKey<StringToken> decorateKey(String key)
     {
         return new DecoratedKey<StringToken>(new StringToken(key), key);
@@ -61,11 +50,6 @@
         return key.key;
     }
 
-    public Comparator<DecoratedKey<StringToken>> getDecoratedKeyComparator()
-    {
-        return comparator;
-    }
-
     public StringToken midpoint(StringToken ltoken, StringToken rtoken)
     {
         int sigchars = Math.max(ltoken.token.length(), rtoken.token.length());

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/dht/RandomPartitioner.java Fri Dec 11 04:12:48 2009
@@ -38,21 +38,6 @@
     public static final BigIntegerToken MINIMUM = new BigIntegerToken("0");
 
     private static final String DELIMITER = ":";
-    
-    private static final Comparator<DecoratedKey<BigIntegerToken>> comparator =
-        new Comparator<DecoratedKey<BigIntegerToken>>() {
-        public int compare(DecoratedKey<BigIntegerToken> o1, DecoratedKey<BigIntegerToken> o2)
-        {
-            // first, compare on the bigint hash "decoration".  usually this will be enough.
-            int v = o1.token.compareTo(o2.token);
-            if (v != 0) {
-                return v;
-            }
-
-            // if the hashes are equal, compare the strings
-            return o1.key.compareTo(o2.key);
-        }
-    };
 
     public DecoratedKey<BigIntegerToken> decorateKey(String key)
     {
@@ -73,11 +58,6 @@
         return key.token + DELIMITER + key.key;
     }
 
-    public Comparator<DecoratedKey<BigIntegerToken>> getDecoratedKeyComparator()
-    {
-        return comparator;
-    }
-
     public BigIntegerToken midpoint(BigIntegerToken ltoken, BigIntegerToken rtoken)
     {
         Pair<BigInteger,Boolean> midpair = FBUtilities.midpoint(ltoken.token, rtoken.token, 127);

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/IteratingRow.java Fri Dec 11 04:12:48 2009
@@ -109,6 +109,6 @@
 
     public int compareTo(IteratingRow o)
     {
-        return partitioner.getDecoratedKeyComparator().compare(key, o.key);
+        return key.compareTo(o.key);
     }
 }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTable.java Fri Dec 11 04:12:48 2009
@@ -179,7 +179,7 @@
 
         public int compareTo(KeyPosition kp)
         {
-            return partitioner.getDecoratedKeyComparator().compare(key, kp.key);
+            return key.compareTo(kp.key);
         }
 
         public String toString()

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableReader.java Fri Dec 11 04:12:48 2009
@@ -310,7 +310,7 @@
                     return -1;
                 }
                 long position = input.readLong();
-                int v = partitioner.getDecoratedKeyComparator().compare(indexDecoratedKey, decoratedKey);
+                int v = indexDecoratedKey.compareTo(decoratedKey);
                 if (v == 0)
                 {
                     if (keyCache != null)
@@ -352,7 +352,7 @@
                     return -1;
                 }
                 long position = input.readLong();
-                int v = partitioner.getDecoratedKeyComparator().compare(indexDecoratedKey, decoratedKey);
+                int v = indexDecoratedKey.compareTo(decoratedKey);
                 if (v >= 0)
                     return position;
             }

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/io/SSTableWriter.java Fri Dec 11 04:12:48 2009
@@ -61,8 +61,7 @@
         {
             throw new IOException("Keys must not be null.");
         }
-        Comparator<DecoratedKey> c = partitioner.getDecoratedKeyComparator();
-        if (lastWrittenKey != null && c.compare(lastWrittenKey, decoratedKey) > 0)
+        if (lastWrittenKey != null && lastWrittenKey.compareTo(decoratedKey) > 0)
         {
             logger.info("Last written key : " + lastWrittenKey);
             logger.info("Current key : " + decoratedKey);

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java Fri Dec 11 04:12:48 2009
@@ -78,7 +78,7 @@
         public int compare(String o1, String o2)
         {
             IPartitioner p = StorageService.getPartitioner();
-            return p.getDecoratedKeyComparator().compare(p.decorateKey(o1), p.decorateKey(o2));
+            return p.decorateKey(o1).compareTo(p.decorateKey(o2));
         }
     };
 

Propchange: incubator/cassandra/trunk/test/unit/org/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Dec 11 04:12:48 2009
@@ -1,3 +1,4 @@
 /incubator/cassandra/branches/cassandra-0.3/test/unit/org:774578-796573
 /incubator/cassandra/branches/cassandra-0.4/test/unit/org:810145-834239,834349-834350
+/incubator/cassandra/branches/cassandra-0.5/test/unit/org:888872-889497
 /incubator/cassandra/trunk/test/unit/org:749219-768583

Modified: incubator/cassandra/trunk/test/unit/org/apache/cassandra/service/ReadResponseResolverTest.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/test/unit/org/apache/cassandra/service/ReadResponseResolverTest.java?rev=889499&r1=889498&r2=889499&view=diff
==============================================================================
--- incubator/cassandra/trunk/test/unit/org/apache/cassandra/service/ReadResponseResolverTest.java (original)
+++ incubator/cassandra/trunk/test/unit/org/apache/cassandra/service/ReadResponseResolverTest.java Fri Dec 11 04:12:48 2009
@@ -1,4 +1,25 @@
 package org.apache.cassandra.service;
+/*
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ */
+
 
 import java.util.Arrays;