code: @Override
      public void waitForAvailabilityState(final AvailabilityState.State availabilityState) throws InterruptedException {
          synchronized (controllerAvailabilityMonitor) {
              while (!Thread.currentThread().isInterrupted()) {
                  if (this.availabilityState.equals(availabilityState)) {
                      return;
                  }
                  controllerAvailabilityMonitor.wait();
              }
          }
      }
docs: {@inheritDoc}
  
  @throws InterruptedException {@inheritDoc}