code: public static SessionCommandException fromThrowable(String message, Throwable cause) {
      return (cause instanceof SessionCommandException && Objects.equals(message, cause.getMessage()))
                     ? (SessionCommandException) cause
                     : new SessionCommandException(message, cause);
    }
docs: Converts a Throwable to a SessionCommandException with the specified detail message. If the
  Throwable is a SessionCommandException and if the Throwable's message is identical to the
  one supplied, the Throwable will be passed through unmodified; otherwise, it will be wrapped in
  a new SessionCommandException with the detail message.
  
  @param cause       the Throwable to convert
  @param message the specified detail message
  
  @return a SessionCommandException