Index: src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (revision 1096993) +++ src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (working copy) @@ -46,8 +46,9 @@ import org.apache.hadoop.hbase.TableNotDisabledException; import org.apache.hadoop.hbase.TableNotFoundException; import org.apache.hadoop.hbase.executor.EventHandler; +import org.apache.hadoop.hbase.executor.ExecutorService; import org.apache.hadoop.hbase.executor.EventHandler.EventType; -import org.apache.hadoop.hbase.executor.ExecutorService; +import org.apache.hadoop.hbase.master.AssignmentManager; import org.apache.hadoop.hbase.master.MasterServices; import org.apache.hadoop.hbase.util.Bytes; import org.junit.AfterClass; @@ -311,8 +312,21 @@ } protected void verifyRoundRobinDistribution(HTable ht, int expectedRegions) throws IOException { + MasterServices services = TEST_UTIL.getMiniHBaseCluster().getMaster(); + AssignmentManager am = services.getAssignmentManager(); + Map regions = ht.getRegionsInfo(); + for (HRegionInfo regionInfo : regions.keySet()) { + try { + am.waitForAssignment(regionInfo); + } catch (InterruptedException e) { + LOG.info("Interrupted waiting for region to be assigned during " + + "create table call", e); + Thread.currentThread().interrupt(); + return; + } + } int numRS = ht.getConnection().getCurrentNrHRS(); - Map regions = ht.getRegionsInfo(); + regions = ht.getRegionsInfo(); Map> server2Regions = new HashMap>(); for (Map.Entry entry : regions.entrySet()) { HServerAddress server = entry.getValue();