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 2012/01/26 19:46:39 UTC

svn commit: r1236345 - in /hbase/branches/0.90: CHANGES.txt src/main/java/org/apache/hadoop/hbase/KeyValue.java src/test/java/org/apache/hadoop/hbase/TestKeyValue.java

Author: tedyu
Date: Thu Jan 26 18:46:38 2012
New Revision: 1236345

URL: http://svn.apache.org/viewvc?rev=1236345&view=rev
Log:
HBASE-5271  Result.getValue and Result.getColumnLatest return the wrong column (Ghais Issa)

Modified:
    hbase/branches/0.90/CHANGES.txt
    hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/KeyValue.java
    hbase/branches/0.90/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java

Modified: hbase/branches/0.90/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1236345&r1=1236344&r2=1236345&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Thu Jan 26 18:46:38 2012
@@ -4,6 +4,7 @@ Release 0.90.7 - Unreleased
    HBASE-5228  [REST] Rip out "transform" feature
   
   BUG FIXES
+   HBASE-5271  Result.getValue and Result.getColumnLatest return the wrong column (Ghais Issa)
 
 Release 0.90.6 - Unreleased
   BUG FIXES

Modified: hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/KeyValue.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/KeyValue.java?rev=1236345&r1=1236344&r2=1236345&view=diff
==============================================================================
--- hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/KeyValue.java (original)
+++ hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/KeyValue.java Thu Jan 26 18:46:38 2012
@@ -1155,7 +1155,7 @@ public class KeyValue implements Writabl
     int o = getFamilyOffset(rl);
     int fl = getFamilyLength(o);
     int ql = getQualifierLength(rl,fl);
-    if (Bytes.compareTo(family, 0, family.length, this.bytes, o, family.length)
+    if (Bytes.compareTo(family, 0, family.length, this.bytes, o, fl)
         != 0) {
       return false;
     }

Modified: hbase/branches/0.90/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java?rev=1236345&r1=1236344&r2=1236345&view=diff
==============================================================================
--- hbase/branches/0.90/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java (original)
+++ hbase/branches/0.90/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java Thu Jan 26 18:46:38 2012
@@ -54,6 +54,21 @@ public class TestKeyValue extends TestCa
     assertFalse(aaa.matchingColumn(family2,qualifier2));
   }
 
+  /** 
+   * Test a corner case when the family qualifier is a prefix of the 
+   * column qualifier.
+   */
+  public void testColumnCompare_prefix() throws Exception {
+    final byte [] a = Bytes.toBytes("aaa");
+    byte [] family1 = Bytes.toBytes("abc");
+    byte [] qualifier1 = Bytes.toBytes("def");
+    byte [] family2 = Bytes.toBytes("ab");
+    byte [] qualifier2 = Bytes.toBytes("def");
+
+    KeyValue aaa = new KeyValue(a, family1, qualifier1, 0L, Type.Put, a);
+    assertFalse(aaa.matchingColumn(family2, qualifier2));
+  }
+
   public void testBasics() throws Exception {
     LOG.info("LOWKEY: " + KeyValue.LOWESTKEY.toString());
     check(Bytes.toBytes(getName()),