public static void fail(final String message, final Throwable cause) {
    if (message == null && cause == null) {
      throw new AssertionError();
    }
    if (message == null) {
      throw new AssertionError(cause);
    }
    if (cause == null) {
      throw new AssertionError(message);
    }
    throw new AssertionError(message, cause);
  }
Fails a test by throwing a new {@code AssertionError} with the specified detail message and
cause.

<p>
Note that the detail message associated with {@code cause} is <i>not</i> automatically
incorporated in this error's detail message.

@param message the detail message, may be {@code null}
@param cause the cause, may be {@code null}

@see java.lang.AssertionError
geode-dunit/src/main/java/org/apache/geode/test/dunit/Assert.java