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 2011/11/16 19:40:38 UTC

svn commit: r1202829 - in /hbase/branches/0.92: CHANGES.txt src/main/java/org/apache/hadoop/hbase/client/Result.java src/test/java/org/apache/hadoop/hbase/client/TestResult.java

Author: larsh
Date: Wed Nov 16 18:40:38 2011
New Revision: 1202829

URL: http://svn.apache.org/viewvc?rev=1202829&view=rev
Log:
HBASE-4800  Result.compareResults is incorrect (James Taylor and Lars H)

Modified:
    hbase/branches/0.92/CHANGES.txt
    hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/client/Result.java
    hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/client/TestResult.java

Modified: hbase/branches/0.92/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/CHANGES.txt?rev=1202829&r1=1202828&r2=1202829&view=diff
==============================================================================
--- hbase/branches/0.92/CHANGES.txt (original)
+++ hbase/branches/0.92/CHANGES.txt Wed Nov 16 18:40:38 2011
@@ -843,6 +843,7 @@ Release 0.90.5 - Unreleased
                via todd)
    HBASE-4562  When split doing offlineParentInMeta encounters error, it'll
                cause data loss (bluedavy via Lars H)
+   HBASE-4800  Result.compareResults is incorrect (James Taylor and Lars H)
 
   IMPROVEMENT
    HBASE-4205  Enhance HTable javadoc (Eric Charles)

Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/client/Result.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/client/Result.java?rev=1202829&r1=1202828&r2=1202829&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/client/Result.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/client/Result.java Wed Nov 16 18:40:38 2011
@@ -634,7 +634,7 @@ public class Result implements Writable,
     KeyValue[] ourKVs = res1.raw();
     KeyValue[] replicatedKVs = res2.raw();
     for (int i = 0; i < res1.size(); i++) {
-      if (!ourKVs[i].equals(replicatedKVs[i]) &&
+      if (!ourKVs[i].equals(replicatedKVs[i]) ||
           !Bytes.equals(ourKVs[i].getValue(), replicatedKVs[i].getValue())) {
         throw new Exception("This result was different: "
             + res1.toString() + " compared to " + res2.toString());

Modified: hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/client/TestResult.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/client/TestResult.java?rev=1202829&r1=1202828&r2=1202829&view=diff
==============================================================================
--- hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/client/TestResult.java (original)
+++ hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/client/TestResult.java Wed Nov 16 18:40:38 2011
@@ -95,4 +95,27 @@ public class TestResult extends TestCase
       assertTrue(r.containsColumn(family, qf));
     }
   }
+
+  /**
+   * Verify that Result.compareResults(...) behaves correctly.
+   */
+  public void testCompareResults() throws Exception {
+    byte [] value1 = Bytes.toBytes("value1");
+    byte [] qual = Bytes.toBytes("qual");
+
+    KeyValue kv1 = new KeyValue(row, family, qual, value);
+    KeyValue kv2 = new KeyValue(row, family, qual, value1);
+
+    Result r1 = new Result(new KeyValue[] {kv1});
+    Result r2 = new Result(new KeyValue[] {kv2});
+    // no exception thrown
+    Result.compareResults(r1, r1);
+    try {
+      // these are different (HBASE-4800)
+      Result.compareResults(r1, r2);
+      fail();
+    } catch (Exception x) {
+      assertTrue(x.getMessage().startsWith("This result was different:"));
+    }
+  }
 }