HBASE-20930 MetaScanner.metaScan should respect meta table name (Vishal Khandelwal)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/83690b63 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/83690b63 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/83690b63 Branch: refs/heads/branch-1.2 Commit: 83690b63b80935f5c782933ead0199e4719591a3 Parents: 5eb4c56 Author: Josh Elser <els...@apache.org> Authored: Mon Jul 30 16:35:34 2018 -0400 Committer: Josh Elser <els...@apache.org> Committed: Mon Jul 30 17:12:22 2018 -0400 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hbase/client/MetaScanner.java | 2 +- .../org/apache/hadoop/hbase/client/TestMetaScanner.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/83690b63/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java index 706085c..c222150 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/MetaScanner.java @@ -147,7 +147,7 @@ public class MetaScanner { // managed connections getting tables. Leaving this as it is for now. Will // revisit when inclined to change all tests. User code probaby makes use of // managed connections too so don't change it till post hbase 1.0. - try (Table metaTable = new HTable(TableName.META_TABLE_NAME, connection, null)) { + try (Table metaTable = new HTable(metaTableName, connection, null)) { if (row != null) { // Scan starting at a particular row in a particular table Result startRowResult = getClosestRowOrBefore(metaTable, tableName, row, http://git-wip-us.apache.org/repos/asf/hbase/blob/83690b63/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java index bff9c78..91f3b99 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaScanner.java @@ -38,6 +38,7 @@ import org.apache.hadoop.hbase.HRegionInfo; import org.apache.hadoop.hbase.MetaTableAccessor; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.TableNotFoundException; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.StoppableImplementation; @@ -106,6 +107,15 @@ public class TestMetaScanner { doReturn(true).when(visitor).processRow((Result) anyObject()); MetaScanner.metaScan(connection, visitor, TABLENAME, Bytes.toBytes("region_ac"), 1); verify(visitor, times(1)).processRow((Result) anyObject()); + + // Verifying whether passed meta is honored by call or not + try { + MetaScanner.metaScan(connection, visitor, TABLENAME, Bytes.toBytes("region_ac"), 1, + TableName.valueOf("invalidMeta")); + Assert.fail("Passed invalid meta table name but it is not honored"); + } catch (TableNotFoundException e) { + } + table.close(); }