StartSynchronizer { public synchronized boolean interrupt() { if (!isStarting) { return false; } startFailure.completeExceptionally(new RuntimeStartInterruptedException(runtimeId)); if (startThread != null) { startThread.interrupt(); startThread = null; } return true; } @Inject  StartSynchronizer(
      EventService eventService,
      @Named("che.infra.kubernetes.workspace_start_timeout_min") int workspaceStartTimeoutMin,
      @Assisted RuntimeIdentity runtimeId); synchronized void start(); synchronized void setStartThread(); synchronized void complete(); synchronized void completeExceptionally(Exception ex); void checkFailure(); CompletableFuture<Void> getStartFailure(); synchronized boolean interrupt(); boolean awaitInterruption(long timeout, TimeUnit unit); boolean isCompleted(); InfrastructureException getStartFailureNow(); long getStartTimeoutMillis();  }
@Test public void shouldNotInterruptStartIfItIsNotStarted() { boolean isInterrupted = startSynchronizer.interrupt(); assertFalse(isInterrupted); }