@NotNull
  private Promise<VALUE> getPromise(HOST host, boolean load, Promise<VALUE> promise) {
    if (!load || promise.getState() != Promise.State.PENDING) {
      return promise;
    }

    Promise<VALUE> effectivePromise = load(host);
    if (effectivePromise != promise) {
      fieldUpdater.compareAndSet(host, promise, effectivePromise);
      effectivePromise.processed(promise);
    }
    return effectivePromise;
  }
@NotNull
  private Promise<VALUE> getPromise(HOST host, boolean load, Promise<VALUE> promise)