code: public static void fireCause(Throwable t) {
          if (t != null) {
              Throwable cause = t.getCause();
              if (cause == null) {
                  cause = t;
              }
              fire(cause);
          }
      }
docs: Throws the cause of the given exception, even though it may be
  checked. If the cause is null, then the original exception is
  thrown. This method only returns normally if the exception is null.
  
  @param t exception whose cause is to be thrown