diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java index 272b7a6..abf6b1c 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Get.java @@ -99,7 +99,11 @@ public class Get extends Query */ public Get(Get get) { this(get.getRow()); - this.filter = get.getFilter(); + // from Query + this.setFilter(get.getFilter()); + this.setReplicaId(get.getReplicaId()); + this.setConsistency(get.getConsistency()); + // from Get this.cacheBlocks = get.getCacheBlocks(); this.maxVersions = get.getMaxVersions(); this.storeLimit = get.getMaxResultsPerColumnFamily(); diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java index 59fce15..686aaa8 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java @@ -684,7 +684,7 @@ public class HTable implements HTableInterface { */ @Override public Result get(final Get get) throws IOException { - return get(get, false); + return get(get, get.isCheckExistenceOnly()); } private Result get(Get get, final boolean checkExistenceOnly) throws IOException { diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestGet.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestGet.java index fd1ba50..0e18ecf 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestGet.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestGet.java @@ -40,6 +40,8 @@ import org.apache.hadoop.hbase.filter.FilterList; import org.apache.hadoop.hbase.filter.KeyOnlyFilter; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.protobuf.generated.ClientProtos; +import org.apache.hadoop.hbase.security.access.Permission; +import org.apache.hadoop.hbase.security.visibility.Authorizations; import org.apache.hadoop.hbase.testclassification.ClientTests; import org.apache.hadoop.hbase.testclassification.SmallTests; import org.apache.hadoop.hbase.util.Base64; @@ -155,12 +157,48 @@ public class TestGet { Set qualifiers = get.getFamilyMap().get(family); Assert.assertEquals(1, qualifiers.size()); } - + @Test public void TestGetRowFromGetCopyConstructor() throws Exception { Get get = new Get(ROW); + get.setFilter(null); + get.setAuthorizations(new Authorizations("foo")); + get.setACL("u", new Permission(Permission.Action.READ)); + get.setConsistency(Consistency.TIMELINE); + get.setReplicaId(2); + get.setIsolationLevel(IsolationLevel.READ_UNCOMMITTED); + get.setCheckExistenceOnly(true); + get.setClosestRowBefore(true); + get.setTimeRange(3, 4); + get.setMaxVersions(11); + get.setMaxResultsPerColumnFamily(10); + get.setRowOffsetPerColumnFamily(11); + get.setCacheBlocks(true); + Get copyGet = new Get(get); assertEquals(0, Bytes.compareTo(get.getRow(), copyGet.getRow())); + + // from OperationWithAttributes + assertEquals(get.getId(), copyGet.getId()); + + // from Query class + assertEquals(get.getFilter(), copyGet.getFilter()); + assertTrue(get.getAuthorizations().toString().equals(copyGet.getAuthorizations().toString())); + assertTrue(Bytes.equals(get.getACL(), copyGet.getACL())); + assertEquals(get.getConsistency(), copyGet.getConsistency()); + assertEquals(get.getReplicaId(), copyGet.getReplicaId()); + assertEquals(get.getIsolationLevel(), copyGet.getIsolationLevel()); + + // from Get class + assertEquals(get.isCheckExistenceOnly(), copyGet.isCheckExistenceOnly()); + assertEquals(get.isClosestRowBefore(), copyGet.isClosestRowBefore()); + assertTrue(get.getTimeRange().equals(copyGet.getTimeRange())); + assertEquals(get.isClosestRowBefore(), copyGet.isClosestRowBefore()); + assertEquals(get.getMaxVersions(), copyGet.getMaxVersions()); + assertEquals(get.getMaxResultsPerColumnFamily(), copyGet.getMaxResultsPerColumnFamily()); + assertEquals(get.getRowOffsetPerColumnFamily(), copyGet.getRowOffsetPerColumnFamily()); + assertEquals(get.getCacheBlocks(), copyGet.getCacheBlocks()); + assertEquals(get.getId(), copyGet.getId()); } @Test