public static Throwable getRootCause(Throwable parent) {
    return getRootCause(parent, 0);
  }
Returns nested 'root' cause of the given parent Throwable. Will return the same Throwable if it
has no 'cause'.

@param parent Throwable whose root cause is to be found
@return nested root cause.
@throws IllegalArgumentException when parent is <code>null</code>
geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/util/CauseFinder.java