WrappedRuntimeException.java 1.9 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.day.util;

import java.io.PrintStream;
import java.io.PrintWriter;

public abstract class WrappedRuntimeException
extends RuntimeException {
    protected Throwable rootException;

    public WrappedRuntimeException(String s) {
        super(s);
    }

    public WrappedRuntimeException(String s, Throwable e) {
        super(s);
    }

    public WrappedRuntimeException(Exception e) {
        this(null, e);
    }

    public String getMessage() {
        String s = super.getMessage();
        if (this.rootException == null) {
            return s;
        }
        String s2 = this.rootException.getMessage();
        return s == null ? s2 : s + ": " + s2;
    }

    public Throwable getRootException() {
        return this.rootException;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    public void printStackTrace() {
        PrintStream printStream = System.err;
        synchronized (printStream) {
            super.printStackTrace();
            if (this.rootException != null) {
                this.rootException.printStackTrace();
            }
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    public void printStackTrace(PrintStream s) {
        PrintStream printStream = s;
        synchronized (printStream) {
            super.printStackTrace(s);
            if (this.rootException != null) {
                this.rootException.printStackTrace(s);
            }
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    public void printStackTrace(PrintWriter s) {
        PrintWriter printWriter = s;
        synchronized (printWriter) {
            super.printStackTrace(s);
            if (this.rootException != null) {
                this.rootException.printStackTrace(s);
            }
        }
    }
}