protected static boolean awaitStability(long timeout, TimeUnit unit, Set<? super ServiceController<?>> failed, Set<? super ServiceController<?>> problem) throws InterruptedException {
boolean stable = system.awaitStability(timeout, unit, failed, problem);
if (!stable) {
log.warn("awaitStability() may require an increased timeout duration.");
}
if (failed != null && !failed.isEmpty()) {
Iterator<? super ServiceController<?>> failedIterator = failed.iterator();
while (failedIterator.hasNext()) {
ServiceController controller = (ServiceController) failedIterator.next();
log.errorf(CONTROLLER_MESSAGE, controller.getName(), controller.getState(), controller.getSubstate(), controller.getMode());
if (controller.getStartException() != null) {
controller.getStartException().printStackTrace();
}
}
}
if (problem != null && !problem.isEmpty()) {
Iterator<? super ServiceController<?>> problemIterator = problem.iterator();
while (problemIterator.hasNext()) {
ServiceController controller = (ServiceController) problemIterator.next();
log.errorf(CONTROLLER_MESSAGE, controller.getName(), controller.getState(), controller.getSubstate(), controller.getMode());
if (controller.getStartException() != null) {
controller.getStartException().printStackTrace();
}
}
}
return stable;
}