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 2010/11/11 03:51:36 UTC

svn commit: r1033806 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DecoratedKey.java

Author: jbellis
Date: Thu Nov 11 02:51:36 2010
New Revision: 1033806

URL: http://svn.apache.org/viewvc?rev=1033806&view=rev
Log:
include key in DecoratedKey equals, compareTo, and hashcode methods
patch by tjake; reviewed by Stu Hood for CASSANDRA-1720

Modified:
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DecoratedKey.java

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DecoratedKey.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DecoratedKey.java?rev=1033806&r1=1033805&r2=1033806&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DecoratedKey.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DecoratedKey.java Thu Nov 11 02:51:36 2010
@@ -61,7 +61,7 @@ public class DecoratedKey<T extends Toke
     @Override
     public int hashCode()
     {
-        return token.hashCode();
+        return token.hashCode() + (key == null ? 0 : key.hashCode());
     }
 
     @Override
@@ -75,12 +75,40 @@ public class DecoratedKey<T extends Toke
             return false;
 
         DecoratedKey other = (DecoratedKey) obj;
-        return token.equals(other.token);
+
+        if (token.equals(other.token))
+        {
+            if (key == null && other.key == null)
+                return true;
+
+            if (key == null || other.key == null)
+                return false;
+
+            return key.equals(other.key);
+        }
+
+        return false;
     }
 
     public int compareTo(DecoratedKey other)
     {
-        return token.compareTo(other.token);
+        int cmp = token.compareTo(other.token);
+
+        if (cmp == 0)
+        {
+            if (key == null && other.key == null)
+                return 0;
+
+            if (key == null)
+                return 1;
+
+            if (other.key == null)
+                return -1;
+
+            return key.compareTo(other.key);
+        }
+
+        return cmp;
     }
 
     public boolean isEmpty()