Index: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java (revision 1440710) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java (working copy) @@ -89,7 +89,7 @@ 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 CountDownLatch secondSplit = new CountDownLatch(1); private static boolean callRollBack = false; private static boolean firstSplitCompleted = false; @@ -587,7 +587,7 @@ SplitTransaction st = null; st = new MockedSplitTransaction(regions.get(0), Bytes.toBytes("row2")); try { - secondSplit = true; + secondSplit.countDown(); st.prepare(); st.execute(regionServer, regionServer); } catch (IOException e) { @@ -617,7 +617,7 @@ assertEquals("No of regions in master", 2, regionsOfTable.size()); } finally { admin.setBalancerRunning(true, false); - secondSplit = false; + // secondSplit = false; firstSplitCompleted = false; callRollBack = false; cluster.getMaster().setCatalogJanitorEnabled(true); @@ -788,7 +788,7 @@ if (this.currentRegion.getRegionInfo().getTableNameAsString() .equals("testShouldFailSplitIfZNodeDoesNotExistDueToPrevRollBack")) { try { - if (!secondSplit){ + if (secondSplit.getCount() > 0){ callRollBack = true; latch.await(); } @@ -806,11 +806,14 @@ public boolean rollback(Server server, RegionServerServices services) throws IOException { if (this.currentRegion.getRegionInfo().getTableNameAsString() .equals("testShouldFailSplitIfZNodeDoesNotExistDueToPrevRollBack")) { - if(secondSplit){ - super.rollback(server, services); - latch.countDown(); - return true; + try { + secondSplit.await(); + } catch (InterruptedException e) { + LOG.warn("rollback", e); } + super.rollback(server, services); + latch.countDown(); + return true; } return super.rollback(server, services); }