public T get() {
    if (myFuture == null) {
      throw new IllegalStateException("The start method has not been called.");
    }
    try {
      myFuture.get();
      return getValue();
    }
    catch (ExecutionException | InterruptedException e) {
      Thread.currentThread().interrupt();
      // propagate
      return null;
    }
  }
public T get()