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:"));
+ }
+ }
}