You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2013/08/02 22:47:17 UTC

svn commit: r1509849 - in /hbase/trunk: hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java

Author: tedyu
Date: Fri Aug  2 20:47:17 2013
New Revision: 1509849

URL: http://svn.apache.org/r1509849
Log:
HBASE-9115 HTableInterface.append operation may overwrites values (Ted Yu)


Modified:
    hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java
    hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java

Modified: hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java?rev=1509849&r1=1509848&r2=1509849&view=diff
==============================================================================
--- hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java (original)
+++ hbase/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Append.java Fri Aug  2 20:47:17 2013
@@ -111,8 +111,15 @@ public class Append extends Mutation {
     }
     // Cast so explicit list type rather than ? extends Cell.  Help the compiler out.  See
     // http://stackoverflow.com/questions/6474784/java-using-generics-with-lists-and-interfaces
-    ((List<KeyValue>)list).add(kv);
+    List<KeyValue> l = (List<KeyValue>)list;
+    // find where the new entry should be placed in the List
+    int idx = 0;
+    for (KeyValue keyval : l) {
+      if (Bytes.compareTo(kv.getQualifier(), keyval.getQualifier()) < 0) break;
+      idx ++;
+    }
+    l.add(idx, kv);
     this.familyMap.put(family, list);
     return this;
   }
-}
\ No newline at end of file
+}

Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java?rev=1509849&r1=1509848&r2=1509849&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java Fri Aug  2 20:47:17 2013
@@ -4373,7 +4373,7 @@ public class TestFromClientSide {
     byte[] v1 = Bytes.toBytes("42");
     byte[] v2 = Bytes.toBytes("23");
     byte [][] QUALIFIERS = new byte [][] {
-        Bytes.toBytes("a"), Bytes.toBytes("b")
+        Bytes.toBytes("b"), Bytes.toBytes("a")
     };
     Append a = new Append(ROW);
     a.add(FAMILY, QUALIFIERS[0], v1);