Repository: hbase Updated Branches: refs/heads/branch-1 8ce811c6e -> d5033fd35
HBASE-18743 HFiles in use by a table which has the same name and namespace with a default table cloned from snapshot may be deleted when that snapshot and default table are deleted (wenbang) Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d5033fd3 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d5033fd3 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d5033fd3 Branch: refs/heads/branch-1 Commit: d5033fd3502e24af358dd208b39769bcaee2dc3a Parents: 8ce811c Author: tedyu <yuzhih...@gmail.com> Authored: Mon Sep 4 07:52:57 2017 -0700 Committer: tedyu <yuzhih...@gmail.com> Committed: Mon Sep 4 07:52:57 2017 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/hadoop/hbase/TableName.java | 2 +- .../java/org/apache/hadoop/hbase/TestNamespace.java | 12 ++++++++++++ .../java/org/apache/hadoop/hbase/io/TestHFileLink.java | 5 +++-- 3 files changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/d5033fd3/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java ---------------------------------------------------------------------- diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java index 198a5eb..9904c78 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/TableName.java @@ -388,7 +388,7 @@ public final class TableName implements Comparable<TableName> { for (TableName tn : tableCache) { if (qualifierAsString.equals(tn.getQualifierAsString()) && - namespaceAsString.equals(tn.getNameAsString())) { + namespaceAsString.equals(tn.getNamespaceAsString())) { return tn; } } http://git-wip-us.apache.org/repos/asf/hbase/blob/d5033fd3/hbase-server/src/test/java/org/apache/hadoop/hbase/TestNamespace.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestNamespace.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestNamespace.java index f0dc132..662cba6 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/TestNamespace.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/TestNamespace.java @@ -393,4 +393,16 @@ public class TestNamespace { fail("Should have thrown exception " + exceptionClass); } + @Test + public void testValueOfNamespaceAndQualifier() { + TableName name0 = TableName.valueOf("table"); + TableName name1 = TableName.valueOf("table", "table"); + assertEquals(NamespaceDescriptor.DEFAULT_NAMESPACE_NAME_STR, name0.getNamespaceAsString()); + assertEquals("table", name0.getQualifierAsString()); + assertEquals("table", name0.getNameAsString()); + assertEquals("table", name1.getNamespaceAsString()); + assertEquals("table", name1.getQualifierAsString()); + assertEquals("table:table", name1.getNameAsString()); + } + } http://git-wip-us.apache.org/repos/asf/hbase/blob/d5033fd3/hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHFileLink.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHFileLink.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHFileLink.java index 044975d..e4d09c3 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHFileLink.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/TestHFileLink.java @@ -102,7 +102,8 @@ public class TestHFileLink { TableName.NAMESPACE_DELIM, '=') + "=" + encodedRegion + "-" + storeFileName; TableName tableNames[] = {TableName.valueOf("tableName1"), - TableName.valueOf("ns", "tableName2")}; + TableName.valueOf("ns", "tableName2"), + TableName.valueOf("refTable:refTable")}; for( TableName tableName : tableNames) { Path tableDir = FSUtils.getTableDir(rootDir, tableName); @@ -112,7 +113,7 @@ public class TestHFileLink { //Verify back reference creation assertEquals(encodedRegion+"."+ tableName.getNameAsString().replace(TableName.NAMESPACE_DELIM, '='), - HFileLink.createBackReferenceName(tableName.getNameAsString(), + HFileLink.createBackReferenceName(FSUtils.getTableName(tableDir).getNameAsString(), encodedRegion)); //verify parsing back reference