From c9376e6d375a9e4729deec0dd518bdf62b2d1a62 Mon Sep 17 00:00:00 2001 From: stack Date: Tue, 25 Nov 2014 16:29:53 -0800 Subject: [PATCH] HBASE-12581 TestCellACLWithMultipleVersions failing since task 5 HBASE-12404 (HBASE-12404 addendum) --- .../TestCellACLWithMultipleVersions.java | 715 +++++++++--------- 1 file changed, 346 insertions(+), 369 deletions(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestCellACLWithMultipleVersions.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestCellACLWithMultipleVersions.java index 90d4c189182..b7ce0ff2f6d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestCellACLWithMultipleVersions.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestCellACLWithMultipleVersions.java @@ -34,6 +34,8 @@ import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.MediumTests; import org.apache.hadoop.hbase.TableNotFoundException; import org.apache.hadoop.hbase.client.Admin; +import org.apache.hadoop.hbase.client.Connection; +import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HTable; @@ -249,24 +251,23 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { verifyAllowed(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - // with rw ACL for "user1" - Put p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, ZERO); - p.setACL(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - t.put(p); - // with rw ACL for "user1" - p = new Put(TEST_ROW2); - p.add(TEST_FAMILY1, TEST_Q1, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, ZERO); - p.setACL(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - t.put(p); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + // with rw ACL for "user1" + Put p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, ZERO); + p.setACL(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + t.put(p); + // with rw ACL for "user1" + p = new Put(TEST_ROW2); + p.add(TEST_FAMILY1, TEST_Q1, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, ZERO); + p.setACL(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + t.put(p); + } } return null; } @@ -275,27 +276,26 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { verifyAllowed(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - // with rw ACL for "user1" and "user2" - Put p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, ZERO); - Map perms = new HashMap(); - perms.put(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - perms.put(user2.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - p.setACL(perms); - t.put(p); - // with rw ACL for "user1" and "user2" - p = new Put(TEST_ROW2); - p.add(TEST_FAMILY1, TEST_Q1, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, ZERO); - p.setACL(perms); - t.put(p); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + // with rw ACL for "user1" and "user2" + Put p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, ZERO); + Map perms = new HashMap(); + perms.put(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + perms.put(user2.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + p.setACL(perms); + t.put(p); + // with rw ACL for "user1" and "user2" + p = new Put(TEST_ROW2); + p.add(TEST_FAMILY1, TEST_Q1, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, ZERO); + p.setACL(perms); + t.put(p); + } } return null; } @@ -306,14 +306,13 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user1.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW1); - d.deleteColumns(TEST_FAMILY1, TEST_Q1); - d.deleteColumns(TEST_FAMILY1, TEST_Q2); - t.delete(d); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW1); + d.deleteColumns(TEST_FAMILY1, TEST_Q1); + d.deleteColumns(TEST_FAMILY1, TEST_Q2); + t.delete(d); + } } return null; } @@ -323,17 +322,16 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user2.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW2); - d.deleteColumns(TEST_FAMILY1, TEST_Q1); - d.deleteColumns(TEST_FAMILY1, TEST_Q2); - t.delete(d); - fail("user2 should not be allowed to delete the row"); - } catch (Exception e) { + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW2); + d.deleteColumns(TEST_FAMILY1, TEST_Q1); + d.deleteColumns(TEST_FAMILY1, TEST_Q2); + t.delete(d); + fail("user2 should not be allowed to delete the row"); + } catch (Exception e) { - } finally { - t.close(); + } } return null; } @@ -342,13 +340,12 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user1.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW2); - d.deleteFamily(TEST_FAMILY1); - t.delete(d); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW2); + d.deleteFamily(TEST_FAMILY1); + t.delete(d); + } } return null; } @@ -363,21 +360,20 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { verifyAllowed(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - // Store read only ACL at a future time - Put p = new Put(TEST_ROW).add(TEST_FAMILY1, TEST_Q1, - EnvironmentEdgeManager.currentTime() + 1000000, - ZERO); - p.setACL(USER_OTHER.getShortName(), new Permission(Permission.Action.READ)); - t.put(p); - // Store a read write ACL without a timestamp, server will use current time - p = new Put(TEST_ROW).add(TEST_FAMILY1, TEST_Q2, ONE); - p.setACL(USER_OTHER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - t.put(p); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + // Store a read write ACL without a timestamp, server will use current time + Put p = new Put(TEST_ROW).add(TEST_FAMILY1, TEST_Q2, ONE); + p.setACL(USER_OTHER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + t.put(p); + LOG.info("Stored at current time"); + // Store read only ACL at a future time + p = new Put(TEST_ROW).add(TEST_FAMILY1, TEST_Q1, + EnvironmentEdgeManager.currentTime() + 1000000, ZERO); + p.setACL(USER_OTHER.getShortName(), new Permission(Permission.Action.READ)); + t.put(p); + } } return null; } @@ -389,11 +385,10 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { @Override public Object run() throws Exception { Get get = new Get(TEST_ROW).addColumn(TEST_FAMILY1, TEST_Q1); - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - return t.get(get).listCells(); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + return t.get(get).listCells(); + } } } }; @@ -402,11 +397,10 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { @Override public Object run() throws Exception { Get get = new Get(TEST_ROW).addColumn(TEST_FAMILY1, TEST_Q2); - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - return t.get(get).listCells(); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + return t.get(get).listCells(); + } } } }; @@ -422,11 +416,10 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { @Override public Object run() throws Exception { Delete delete = new Delete(TEST_ROW).deleteFamily(TEST_FAMILY1); - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - t.delete(delete); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + t.delete(delete); + } } return null; } @@ -448,43 +441,42 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { USER_OWNER.runAs(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - // This version (TS = 123) with rw ACL for USER_OTHER and USER_OTHER2 - Put p = new Put(TEST_ROW); - p.add(TEST_FAMILY1, TEST_Q1, 123L, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, 123L, ZERO); - Map perms = new HashMap(); - perms.put(USER_OTHER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - perms.put(USER_OTHER2.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - p.setACL(perms); - t.put(p); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + // This version (TS = 123) with rw ACL for USER_OTHER and USER_OTHER2 + Put p = new Put(TEST_ROW); + p.add(TEST_FAMILY1, TEST_Q1, 123L, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, 123L, ZERO); + Map perms = new HashMap(); + perms.put(USER_OTHER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + perms.put(USER_OTHER2.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + p.setACL(perms); + t.put(p); - // This version (TS = 125) with rw ACL for USER_OTHER - p = new Put(TEST_ROW); - p.add(TEST_FAMILY1, TEST_Q1, 125L, ONE); - p.add(TEST_FAMILY1, TEST_Q2, 125L, ONE); - perms = new HashMap(); - perms.put(USER_OTHER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - p.setACL(perms); - t.put(p); + // This version (TS = 125) with rw ACL for USER_OTHER + p = new Put(TEST_ROW); + p.add(TEST_FAMILY1, TEST_Q1, 125L, ONE); + p.add(TEST_FAMILY1, TEST_Q2, 125L, ONE); + perms = new HashMap(); + perms.put(USER_OTHER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + p.setACL(perms); + t.put(p); - // This version (TS = 127) with rw ACL for USER_OTHER - p = new Put(TEST_ROW); - p.add(TEST_FAMILY1, TEST_Q1, 127L, TWO); - p.add(TEST_FAMILY1, TEST_Q2, 127L, TWO); - perms = new HashMap(); - perms.put(USER_OTHER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - p.setACL(perms); - t.put(p); + // This version (TS = 127) with rw ACL for USER_OTHER + p = new Put(TEST_ROW); + p.add(TEST_FAMILY1, TEST_Q1, 127L, TWO); + p.add(TEST_FAMILY1, TEST_Q2, 127L, TWO); + perms = new HashMap(); + perms.put(USER_OTHER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + p.setACL(perms); + t.put(p); - return null; - } finally { - t.close(); + return null; + } } } }); @@ -493,13 +485,12 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { USER_OTHER2.runAs(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW, 124L); - d.deleteColumns(TEST_FAMILY1, TEST_Q1); - t.delete(d); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW, 124L); + d.deleteColumns(TEST_FAMILY1, TEST_Q1); + t.delete(d); + } } return null; } @@ -509,13 +500,12 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { USER_OTHER2.runAs(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW); - d.deleteColumns(TEST_FAMILY1, TEST_Q2, 124L); - t.delete(d); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW); + d.deleteColumns(TEST_FAMILY1, TEST_Q2, 124L); + t.delete(d); + } } return null; } @@ -535,53 +525,52 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { verifyAllowed(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Map permsU1andOwner = new HashMap(); - permsU1andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU1andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - Map permsU2andOwner = new HashMap(); - permsU2andOwner.put(user2.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU2andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - Put p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 123, ZERO); - p.setACL(permsU1andOwner); - t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q2, 123, ZERO); - p.setACL(permsU2andOwner); - t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY2, TEST_Q1, 123, ZERO); - p.add(TEST_FAMILY2, TEST_Q2, 123, ZERO); - p.setACL(permsU2andOwner); - t.put(p); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Map permsU1andOwner = new HashMap(); + permsU1andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU1andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + Map permsU2andOwner = new HashMap(); + permsU2andOwner.put(user2.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU2andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + Put p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 123, ZERO); + p.setACL(permsU1andOwner); + t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q2, 123, ZERO); + p.setACL(permsU2andOwner); + t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY2, TEST_Q1, 123, ZERO); + p.add(TEST_FAMILY2, TEST_Q2, 123, ZERO); + p.setACL(permsU2andOwner); + t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY2, TEST_Q1, 125, ZERO); - p.add(TEST_FAMILY2, TEST_Q2, 125, ZERO); - p.setACL(permsU1andOwner); - t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY2, TEST_Q1, 125, ZERO); + p.add(TEST_FAMILY2, TEST_Q2, 125, ZERO); + p.setACL(permsU1andOwner); + t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 127, ZERO); - p.setACL(permsU2andOwner); - t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q2, 127, ZERO); - p.setACL(permsU1andOwner); - t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY2, TEST_Q1, 129, ZERO); - p.add(TEST_FAMILY2, TEST_Q2, 129, ZERO); - p.setACL(permsU1andOwner); - t.put(p); - } finally { - t.close(); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 127, ZERO); + p.setACL(permsU2andOwner); + t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q2, 127, ZERO); + p.setACL(permsU1andOwner); + t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY2, TEST_Q1, 129, ZERO); + p.add(TEST_FAMILY2, TEST_Q2, 129, ZERO); + p.setACL(permsU1andOwner); + t.put(p); + } } return null; } @@ -592,15 +581,14 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user1.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW1); - d.deleteColumn(TEST_FAMILY1, TEST_Q1, 123); - d.deleteColumn(TEST_FAMILY1, TEST_Q2); - d.deleteFamilyVersion(TEST_FAMILY2, 125); - t.delete(d); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW1); + d.deleteColumn(TEST_FAMILY1, TEST_Q1, 123); + d.deleteColumn(TEST_FAMILY1, TEST_Q2); + d.deleteFamilyVersion(TEST_FAMILY2, 125); + t.delete(d); + } } return null; } @@ -609,18 +597,17 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user2.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW1, 127); - d.deleteColumns(TEST_FAMILY1, TEST_Q1); - d.deleteColumns(TEST_FAMILY1, TEST_Q2); - d.deleteFamily(TEST_FAMILY2, 129); - t.delete(d); - fail("user2 can not do the delete"); - } catch (Exception e) { + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW1, 127); + d.deleteColumns(TEST_FAMILY1, TEST_Q1); + d.deleteColumns(TEST_FAMILY1, TEST_Q2); + d.deleteFamily(TEST_FAMILY2, 129); + t.delete(d); + fail("user2 can not do the delete"); + } catch (Exception e) { - } finally { - t.close(); + } } return null; } @@ -640,37 +627,36 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { verifyAllowed(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Map permsU1andOwner = new HashMap(); - permsU1andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU1andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - Map permsU2andOwner = new HashMap(); - permsU2andOwner.put(user2.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU2andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - Put p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 123, ZERO); - p.setACL(permsU1andOwner); - t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q2, 123, ZERO); - p.setACL(permsU2andOwner); - t.put(p); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Map permsU1andOwner = new HashMap(); + permsU1andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU1andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + Map permsU2andOwner = new HashMap(); + permsU2andOwner.put(user2.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU2andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + Put p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 123, ZERO); + p.setACL(permsU1andOwner); + t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q2, 123, ZERO); + p.setACL(permsU2andOwner); + t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 127, ZERO); - p.setACL(permsU2andOwner); - t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q2, 127, ZERO); - p.setACL(permsU1andOwner); - t.put(p); - } finally { - t.close(); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 127, ZERO); + p.setACL(permsU2andOwner); + t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q2, 127, ZERO); + p.setACL(permsU1andOwner); + t.put(p); + } } return null; } @@ -680,15 +666,14 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user1.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Increment inc = new Increment(TEST_ROW1); - inc.setTimeRange(0, 123); - inc.addColumn(TEST_FAMILY1, TEST_Q1, 2L); - t.increment(inc); - t.incrementColumnValue(TEST_ROW1, TEST_FAMILY1, TEST_Q2, 1L); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Increment inc = new Increment(TEST_ROW1); + inc.setTimeRange(0, 123); + inc.addColumn(TEST_FAMILY1, TEST_Q1, 2L); + t.increment(inc); + t.incrementColumnValue(TEST_ROW1, TEST_FAMILY1, TEST_Q2, 1L); + } } return null; } @@ -697,17 +682,16 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user2.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Increment inc = new Increment(TEST_ROW1); - inc.setTimeRange(0, 127); - inc.addColumn(TEST_FAMILY1, TEST_Q2, 2L); - t.increment(inc); - fail(); - } catch (Exception e) { + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Increment inc = new Increment(TEST_ROW1); + inc.setTimeRange(0, 127); + inc.addColumn(TEST_FAMILY1, TEST_Q2, 2L); + t.increment(inc); + fail(); + } catch (Exception e) { - } finally { - t.close(); + } } return null; } @@ -727,37 +711,36 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { verifyAllowed(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Map permsU1andOwner = new HashMap(); - permsU1andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU1andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - Map permsU2andOwner = new HashMap(); - permsU2andOwner.put(user2.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU2andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - Put p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 123, ZERO); - p.setACL(permsU1andOwner); - t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q2, 123, ZERO); - p.setACL(permsU2andOwner); - t.put(p); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Map permsU1andOwner = new HashMap(); + permsU1andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU1andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + Map permsU2andOwner = new HashMap(); + permsU2andOwner.put(user2.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU2andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + Put p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 123, ZERO); + p.setACL(permsU1andOwner); + t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q2, 123, ZERO); + p.setACL(permsU2andOwner); + t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 127, ZERO); - p.setACL(permsU2andOwner); - t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q2, 127, ZERO); - p.setACL(permsU1andOwner); - t.put(p); - } finally { - t.close(); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 127, ZERO); + p.setACL(permsU2andOwner); + t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q2, 127, ZERO); + p.setACL(permsU1andOwner); + t.put(p); + } } return null; } @@ -769,16 +752,15 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user1.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Put p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 125, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, ZERO); - p.setACL(user2.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - t.put(p); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Put p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 125, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, ZERO); + p.setACL(user2.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + t.put(p); + } } return null; } @@ -788,18 +770,17 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user2.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Put p = new Put(TEST_ROW1); - // column Q1 covers version at 123 fr which user2 do not have permission - p.add(TEST_FAMILY1, TEST_Q1, 124, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, ZERO); - t.put(p); - fail(); - } catch (Exception e) { + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Put p = new Put(TEST_ROW1); + // column Q1 covers version at 123 fr which user2 do not have permission + p.add(TEST_FAMILY1, TEST_Q1, 124, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, ZERO); + t.put(p); + fail(); + } catch (Exception e) { - } finally { - t.close(); + } } return null; } @@ -817,49 +798,48 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { verifyAllowed(new AccessTestAction() { @Override public Object run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Map permsU1andOwner = new HashMap(); - permsU1andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU1andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - Map permsU1andU2andOwner = new HashMap(); - permsU1andU2andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU1andU2andOwner.put(user2.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU1andU2andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - Map permsU1andU2 = new HashMap(); - permsU1andU2.put(user1.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); - permsU1andU2.put(user2.getShortName(), new Permission(Permission.Action.READ, - Permission.Action.WRITE)); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Map permsU1andOwner = new HashMap(); + permsU1andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU1andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + Map permsU1andU2andOwner = new HashMap(); + permsU1andU2andOwner.put(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU1andU2andOwner.put(user2.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU1andU2andOwner.put(USER_OWNER.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + Map permsU1andU2 = new HashMap(); + permsU1andU2.put(user1.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); + permsU1andU2.put(user2.getShortName(), new Permission(Permission.Action.READ, + Permission.Action.WRITE)); - Put p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 120, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, 120, ZERO); - p.setACL(permsU1andU2andOwner); - t.put(p); + Put p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 120, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, 120, ZERO); + p.setACL(permsU1andU2andOwner); + t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 123, ZERO); - p.add(TEST_FAMILY1, TEST_Q2, 123, ZERO); - p.setACL(permsU1andOwner); - t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 123, ZERO); + p.add(TEST_FAMILY1, TEST_Q2, 123, ZERO); + p.setACL(permsU1andOwner); + t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q1, 127, ZERO); - p.setACL(permsU1andU2); - t.put(p); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q1, 127, ZERO); + p.setACL(permsU1andU2); + t.put(p); - p = new Put(TEST_ROW1); - p.add(TEST_FAMILY1, TEST_Q2, 127, ZERO); - p.setACL(user2.getShortName(), new Permission(Permission.Action.READ)); - t.put(p); - } finally { - t.close(); + p = new Put(TEST_ROW1); + p.add(TEST_FAMILY1, TEST_Q2, 127, ZERO); + p.setACL(user2.getShortName(), new Permission(Permission.Action.READ)); + t.put(p); + } } return null; } @@ -870,13 +850,12 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user1.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW1); - d.deleteColumns(TEST_FAMILY1, TEST_Q1, 120); - t.checkAndDelete(TEST_ROW1, TEST_FAMILY1, TEST_Q1, ZERO, d); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW1); + d.deleteColumns(TEST_FAMILY1, TEST_Q1, 120); + t.checkAndDelete(TEST_ROW1, TEST_FAMILY1, TEST_Q1, ZERO, d); + } } return null; } @@ -886,15 +865,14 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user2.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW1); - d.deleteColumns(TEST_FAMILY1, TEST_Q1); - t.checkAndDelete(TEST_ROW1, TEST_FAMILY1, TEST_Q1, ZERO, d); - fail("user2 should not be allowed to do checkAndDelete"); - } catch (Exception e) { - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW1); + d.deleteColumns(TEST_FAMILY1, TEST_Q1); + t.checkAndDelete(TEST_ROW1, TEST_FAMILY1, TEST_Q1, ZERO, d); + fail("user2 should not be allowed to do checkAndDelete"); + } catch (Exception e) { + } } return null; } @@ -905,13 +883,12 @@ public class TestCellACLWithMultipleVersions extends SecureTestUtil { user2.runAs(new PrivilegedExceptionAction() { @Override public Void run() throws Exception { - Table t = new HTable(conf, TEST_TABLE.getTableName()); - try { - Delete d = new Delete(TEST_ROW1); - d.deleteColumn(TEST_FAMILY1, TEST_Q2, 120); - t.checkAndDelete(TEST_ROW1, TEST_FAMILY1, TEST_Q2, ZERO, d); - } finally { - t.close(); + try (Connection connection = ConnectionFactory.createConnection(conf)) { + try (Table t = connection.getTable(TEST_TABLE.getTableName())) { + Delete d = new Delete(TEST_ROW1); + d.deleteColumn(TEST_FAMILY1, TEST_Q2, 120); + t.checkAndDelete(TEST_ROW1, TEST_FAMILY1, TEST_Q2, ZERO, d); + } } return null; }