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

svn commit: r1509921 - in /hbase/branches/0.94/src: main/java/org/apache/hadoop/hbase/client/Append.java test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java

Author: larsh
Date: Sat Aug  3 00:41:42 2013
New Revision: 1509921

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

Modified:
    hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/Append.java
    hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java

Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/Append.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/Append.java?rev=1509921&r1=1509920&r2=1509921&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/Append.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/Append.java Sat Aug  3 00:41:42 2013
@@ -88,7 +88,13 @@ public class Append extends Mutation {
     if(list == null) {
       list = new ArrayList<KeyValue>();
     }
-    list.add(new KeyValue(
+    // find where the new entry should be placed in the List
+    int idx = 0;
+    for (KeyValue kv : list) {
+      if (Bytes.compareTo(qualifier, kv.getQualifier()) < 0) break;
+      idx ++;
+    }
+    list.add(idx, new KeyValue(
         this.row, family, qualifier, this.ts, KeyValue.Type.Put, value));
     familyMap.put(family, list);
     return this;

Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java?rev=1509921&r1=1509920&r2=1509921&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java Sat Aug  3 00:41:42 2013
@@ -4166,7 +4166,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);