class HugeException extends RuntimeException {

    private static final long serialVersionUID = -8711375282196157058L;

    public HugeException(String message) {
        super(message);
    }

    public HugeException(String message, Throwable cause) {
        super(message, cause);
    }

    public HugeException(String message, Object... args) {
        super(String.format(message, args));
    }

    public HugeException(String message, Throwable cause, Object... args) {
        super(String.format(message, args), cause);
    }

    public Throwable rootCause() {
        return rootCause(this);
    }

    public static Throwable rootCause(Throwable e) {<FILL_FUNCTION_BODY>}

    public static boolean isInterrupted(Throwable e) {
        Throwable rootCause = HugeException.rootCause(e);
        return rootCause instanceof InterruptedException ||
               rootCause instanceof TraversalInterruptedException ||
               rootCause instanceof InterruptedIOException;
    }
}

        Throwable cause = e;
        while (cause.getCause() != null) {
            cause = cause.getCause();
        }
        return cause;
    
<methods>public void <init>() ,public void <init>(java.lang.String) ,public void <init>(java.lang.Throwable) ,public void <init>(java.lang.String, java.lang.Throwable) <variables>static final long serialVersionUID