code: ContainerStateChangeReport awaitContainerStateChangeReport(long timeout, TimeUnit timeUnit) throws InterruptedException, TimeoutException {
          if (monitor.awaitStability(timeout, timeUnit, failed, problems)) {
              return createContainerStateChangeReport(false);
          }
          throw new TimeoutException();
      }
docs: Await service container stability and then report on container state changes. Does not reset change history,
  so another run of this method with no intervening call to {@link #logContainerStateChangesAndReset()}
  will produce a report including any changes included in a report returned by the first run.
  
  @param timeout maximum period to wait for service container stability
  @param timeUnit unit in which {@code timeout} is expressed
  
  @return a change report, or {@code null} if there is nothing to report
  
  @throws java.lang.InterruptedException if the thread is interrupted while awaiting service container stability
  @throws java.util.concurrent.TimeoutException if service container stability is not reached before the specified timeout