diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/TablePermission.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/TablePermission.java index 481655a26f7..3c75730f41a 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/TablePermission.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/access/TablePermission.java @@ -320,7 +320,8 @@ public class TablePermission extends Permission { } TablePermission other = (TablePermission)obj; - if (!(table.equals(other.getTableName()) && + if (!(((table == null && other.getTableName() == null) || + (table != null && table.equals(other.getTableName()))) && ((family == null && other.getFamily() == null) || Bytes.equals(family, other.getFamily())) && ((qualifier == null && other.getQualifier() == null) || diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java index 9b35ed1f608..84fa04dbebe 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestTablePermissions.java @@ -84,6 +84,8 @@ public class TestTablePermissions { } }; + private static String TEST_NAMESPACE = "perms_test_ns"; + private static String TEST_NAMESPACE2 = "perms_test_ns2"; private static TableName TEST_TABLE = TableName.valueOf("perms_test"); private static TableName TEST_TABLE2 = @@ -400,6 +402,15 @@ public class TestTablePermissions { p2 = new TablePermission(TEST_TABLE, null); assertFalse(p1.equals(p2)); assertFalse(p2.equals(p1)); + + p1 = new TablePermission(TEST_NAMESPACE, TablePermission.Action.READ); + p2 = new TablePermission(TEST_NAMESPACE, TablePermission.Action.READ); + assertEquals(p1, p2); + + p1 = new TablePermission(TEST_NAMESPACE, TablePermission.Action.READ); + p2 = new TablePermission(TEST_NAMESPACE2, TablePermission.Action.READ); + assertFalse(p1.equals(p2)); + assertFalse(p2.equals(p1)); } @Test