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:49:37 UTC

svn commit: r1236346 - in /hbase/branches/0.92: 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:49:36 2012
New Revision: 1236346

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

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

Modified: hbase/branches/0.92/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/CHANGES.txt?rev=1236346&r1=1236345&r2=1236346&view=diff
==============================================================================
--- hbase/branches/0.92/CHANGES.txt (original)
+++ hbase/branches/0.92/CHANGES.txt Thu Jan 26 18:49:36 2012
@@ -944,6 +944,7 @@ Release 0.92.0 - 01/23/2012
 Release 0.90.7 - Unreleased
 
   BUG FIXES
+   HBASE-5271  Result.getValue and Result.getColumnLatest return the wrong column (Ghais Issa)
 
 Release 0.90.6 - Unreleased
 

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

Modified: hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java?rev=1236346&r1=1236345&r2=1236346&view=diff
==============================================================================
--- hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java (original)
+++ hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java Thu Jan 26 18:49:36 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()),