Index: src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java (revision 1440624) +++ src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java (working copy) @@ -77,9 +77,9 @@ private MiniHBaseCluster cluster = null; private static final int NB_SERVERS = 2; private static CountDownLatch latch = new CountDownLatch(1); - private static boolean secondSplit = false; - private static boolean callRollBack = false; - private static boolean firstSplitCompleted = false; + private static volatile boolean secondSplit = false; + private static volatile boolean callRollBack = false; + private static volatile boolean firstSplitCompleted = false; private static final HBaseTestingUtility TESTING_UTIL = new HBaseTestingUtility(); @@ -236,6 +236,7 @@ } finally { admin.setBalancerRunning(true, false); cluster.getMaster().setCatalogJanitorEnabled(true); + t.close(); } } @@ -456,11 +457,7 @@ // Create table then get the single region for our new table. this.admin = new HBaseAdmin(TESTING_UTIL.getConfiguration()); - HTableDescriptor htd = new HTableDescriptor(tableName); - HColumnDescriptor hcd = new HColumnDescriptor(HConstants.CATALOG_FAMILY); - htd.addFamily(hcd); - this.admin.createTable(htd); - HTable t = new HTable(TESTING_UTIL.getConfiguration(), tableName); + HTable t = TESTING_UTIL.createTable(tableName, HConstants.CATALOG_FAMILY); List regions = cluster.getRegions(tableName); HRegionInfo hri = getAndCheckSingleTableRegion(regions); @@ -517,6 +514,7 @@ SplitRegionHandler.TEST_SKIP = false; this.admin.setBalancerRunning(true, false); cluster.getMaster().setCatalogJanitorEnabled(true); + t.close(); } } @@ -601,6 +599,10 @@ HTableDescriptor htd = new HTableDescriptor(tableName); htd.addFamily(new HColumnDescriptor("cf")); admin.createTable(htd); + for (int i = 0; cluster.getRegions(tableName).size() == 0 && i < 100; i++) { + Thread.sleep(100); + } + assertTrue("Table not online", cluster.getRegions(tableName).size() != 0); HRegion region = cluster.getRegions(tableName).get(0); int regionServerIndex = cluster.getServerWith(region.getRegionName()); @@ -655,16 +657,8 @@ HBaseAdmin admin = new HBaseAdmin(TESTING_UTIL.getConfiguration()); try { // Create table then get the single region for our new table. - HTableDescriptor htd = new HTableDescriptor(tableName); - htd.addFamily(new HColumnDescriptor("cf")); - admin.createTable(htd); - HTable t = new HTable(cluster.getConfiguration(), tableName); - // wait for up to 10s - for (int i=0; cluster.getRegions(tableName).size() != 1 && i<100; i++) { - Thread.sleep(100); - } - assertTrue("waited too long for table to get online", - cluster.getRegions(tableName).size() == 1); + HTable t = TESTING_UTIL.createTable(tableName, Bytes.toBytes("cf")); + final List regions = cluster.getRegions(tableName); HRegionInfo hri = getAndCheckSingleTableRegion(regions); int regionServerIndex = cluster.getServerWith(regions.get(0).getRegionName()); @@ -687,7 +681,7 @@ } } }.start(); - for (int i=0; !callRollBack && i<100; i++) { + for (int i = 0; !callRollBack && i < 100; i++) { Thread.sleep(100); } assertTrue("Waited too long for rollback", callRollBack); @@ -741,10 +735,8 @@ HBaseAdmin admin = new HBaseAdmin(TESTING_UTIL.getConfiguration()); try { // Create table then get the single region for our new table. - HTableDescriptor htd = new HTableDescriptor(tableName); - htd.addFamily(new HColumnDescriptor("cf")); - admin.createTable(htd); - HTable t = new HTable(cluster.getConfiguration(), tableName); + HTable t = TESTING_UTIL.createTable(tableName, Bytes.toBytes("cf")); + regions = cluster.getRegions(tableName); int regionServerIndex = cluster.getServerWith(regions.get(0).getRegionName()); regionServer = cluster.getRegionServer(regionServerIndex); @@ -797,10 +789,10 @@ HTableDescriptor htd = new HTableDescriptor(tableName); htd.addFamily(new HColumnDescriptor("cf")); admin.createTable(htd); - for (int i=0; cluster.getRegions(tableName).size() != 1 && i<100; i++) { + for (int i = 0; cluster.getRegions(tableName).size() == 0 && i < 100; i++) { Thread.sleep(100); } - assertTrue("Table not online", cluster.getRegions(tableName).size() == 1); + assertTrue("Table not online", cluster.getRegions(tableName).size() != 0); List regions = cluster.getRegions(tableName); HRegionInfo hri = getAndCheckSingleTableRegion(regions); int tableRegionIndex = ensureTableRegionNotOnSameServerAsMeta(admin, hri);