// bring up the datanode
cluster.restartDataNode(dnprop);
// Wait for block report
LOG.info("wait for its block report to come in");
NumberReplicas num;
long startTime = System.currentTimeMillis();
do {
namesystem.readLock();
try {
num = namesystem.countNodes(block);
} finally {
namesystem.readUnlock();
}
Thread.sleep(1000);
LOG.info("live: " + num.liveReplicas()
+ "Decom: " + num.decommissionedReplicas());
} while (num.decommissionedReplicas() != 1 &&
System.currentTimeMillis() - startTime < 30000);
assertEquals("Decommissioning Replicas doesn't reach 1",
1, num.decommissionedReplicas());
assertEquals(1, namesystem.getNonCorruptUnderReplicatedBlocks());
assertEquals(0, namesystem.getMissingBlocksCount());
} finally {
cluster.shutdown();
}