code: protected @Nullable String pendingToString() {
      Object localValue = value;
      if (localValue instanceof SetFuture) {
        return "setFuture=[" + userObjectToString(((SetFuture) localValue).future) + "]";
      } else if (this instanceof ScheduledFuture) {
        return "remaining delay=["
            + ((ScheduledFuture) this).getDelay(TimeUnit.MILLISECONDS)
            + " ms]";
      }
      return null;
    }
docs: Provide a human-readable explanation of why this future has not yet completed.
  
  @return null if an explanation cannot be provided because the future is done.
  @since 23.0