docs: public static <T> T runIfNotDoneAndGet(RunnableFuture<T> future) throws ExecutionException, InterruptedException {
  
  		if (null == future) {
  			return null;
  		}
  
  		if (!future.isDone()) {
  			future.run();
  		}
  
  		return future.get();
  	}