code: public Set<Class<? extends Exception>> getRecoverableExceptions() {
      return recoverableExceptions != null ? recoverableExceptions : parent != null ? parent.getRecoverableExceptions()
        : Collections.<Class<? extends Exception>>emptySet();
    }
docs: Returns the exceptions which will be recovered from. By default these will include
  {@code SocketTimeoutException}, {@code ConnectException}, {@code AlreadyClosedException}, and
  {@code TimeoutException}, but this set can be mutated directly to change the recoverable
  exceptions.