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 1435017) +++ 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-common/src/main/java/org/apache/hadoop/hbase/KeyValueTestUtil.java =================================================================== --- hbase-common/src/main/java/org/apache/hadoop/hbase/KeyValueTestUtil.java (revision 1435017) +++ hbase-common/src/main/java/org/apache/hadoop/hbase/KeyValueTestUtil.java (working copy) @@ -23,10 +23,10 @@ import java.util.List; import org.apache.hadoop.classification.InterfaceAudience; -import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.IterableUtils; import org.apache.hadoop.hbase.util.Strings; +import org.apache.hbase.cell.CellComparator; import com.google.common.collect.Lists; @@ -61,7 +61,6 @@ ); } - public static ByteBuffer toByteBufferAndRewind(final Iterable 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 1435017) +++ hbase-common/src/main/java/org/apache/hadoop/hbase/KeyValue.java (working copy) @@ -851,7 +851,7 @@ if (!(other instanceof Cell)) { return false; } - return CellComparator.equalsIgnoreMvccVersion(this, (Cell)other); + return CellComparator.equals(this, (Cell)other); } @Override