Index: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestColumnSeeking.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestColumnSeeking.java (revision 1435371) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestColumnSeeking.java (working copy) @@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hbase.cell.CellComparator; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -149,7 +150,7 @@ while (scanner.next(results)) ; assertEquals(kvSet.size(), results.size()); - assertTrue(results.containsAll(kvSet)); + assertTrue(KeyValueTestUtil.containsIgnoreMvccVersion(results, kvSet)); } } finally { HRegion.closeHRegion(region); @@ -260,7 +261,7 @@ while (scanner.next(results)) ; assertEquals(kvSet.size(), results.size()); - assertTrue(results.containsAll(kvSet)); + assertTrue(KeyValueTestUtil.containsIgnoreMvccVersion(results, kvSet)); } HRegion.closeHRegion(region); Index: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.java (revision 1435371) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.java (working copy) @@ -48,7 +48,7 @@ import org.apache.hadoop.hbase.io.compress.Compression; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; import org.apache.hadoop.hbase.util.Bytes; -import org.junit.Before; +import org.apache.hbase.cell.CellComparator; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; @@ -262,8 +262,8 @@ } assertTrue("Scanner returned additional key/value: " + kv + ", " + queryInfo + deleteInfo + ";", kvPos < kvs.size()); - assertEquals("Scanner returned wrong key/value; " + queryInfo - + deleteInfo + ";", kvs.get(kvPos), kv); + assertTrue("Scanner returned wrong key/value; " + queryInfo + + deleteInfo + ";", CellComparator.equalsIgnoreMvccVersion(kvs.get(kvPos), (kv))); ++kvPos; ++numResults; } Index: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java (revision 1435371) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java (working copy) @@ -90,6 +90,7 @@ import org.apache.hadoop.hbase.util.Pair; import org.apache.hadoop.hbase.util.PairOfSameType; import org.apache.hadoop.hbase.util.Threads; +import org.apache.hbase.cell.CellComparator; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -1983,8 +1984,8 @@ res = new ArrayList(); is.next(res); - for(int i=0; i(); is.next(res); for(int i=0; i kvs, boolean includeMemstoreTS) { int totalBytes = KeyValueTool.totalLengthWithMvccVersion(kvs, includeMemstoreTS); @@ -73,6 +72,27 @@ return bb; } + /** + * Checks whether KeyValues from kvCollection2 are contained in kvCollection1. + * + * The comparison is made without distinguishing MVCC version of the KeyValues + * + * @param kvCollection1 + * @param kvCollection2 + * @return true if KeyValues from kvCollection2 are contained in kvCollection1 + */ + public static boolean containsIgnoreMvccVersion(Collection kvCollection1, + Collection kvCollection2) { + for (KeyValue kv1 : kvCollection1) { + boolean found = false; + for (KeyValue kv2 : kvCollection2) { + if (CellComparator.equalsIgnoreMvccVersion(kv1, kv2)) found = true; + } + if (!found) return false; + } + return true; + } + public static List rewindThenToList(final ByteBuffer bb, final boolean includesMemstoreTS) { bb.rewind(); Index: hbase-common/src/main/java/org/apache/hadoop/hbase/KeyValue.java =================================================================== --- hbase-common/src/main/java/org/apache/hadoop/hbase/KeyValue.java (revision 1435371) +++ hbase-common/src/main/java/org/apache/hadoop/hbase/KeyValue.java (working copy) @@ -842,16 +842,13 @@ /** * Needed doing 'contains' on List. Only compares the key portion, not the value. - * - * For temporary backwards compatibility with the original KeyValue.equals method, we ignore the - * mvccVersion. */ @Override public boolean equals(Object other) { if (!(other instanceof Cell)) { return false; } - return CellComparator.equalsIgnoreMvccVersion(this, (Cell)other); + return CellComparator.equals(this, (Cell)other); } @Override