StartSynchronizer { public InfrastructureException getStartFailureNow() { try { startFailure.getNow(null); return null; } catch (CompletionException e) { Throwable cause = e.getCause(); if (cause instanceof InfrastructureException) { return (InfrastructureException) cause; } else { return new InternalInfrastructureException(cause.getMessage(), cause); } } } @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 shouldReturnStartFailureWhenItIsNotCompletedYet() { InfrastructureException startFailure = startSynchronizer.getStartFailureNow(); assertNull(startFailure); }