docs: public static Throwable getCause(final Throwable throwable) {
          // Unwrap possibly-nested ExecutionExceptions to get to root cause
          Throwable cause = throwable;
          while (cause instanceof ExecutionException) {
              cause = cause.getCause();
          }
          return cause != null ? cause : new ExecutionException("ExecutionException with unknown cause", null);
      }