private Exception unwrap()

in meecrowave-jta/src/main/java/org/apache/meecrowave/jta/InterceptorBase.java [163:176]


    private Exception unwrap(final Exception e) {
        Exception error = e;
        while (error != null && (SystemException.class.isInstance(error) || TransactionRolledbackException.class.isInstance(error))) {
            final Throwable cause = error.getCause();
            if (cause == error) {
                break;
            }
            error = Exception.class.isInstance(cause) ? Exception.class.cast(cause) : null;
        }
        if (RollbackException.class.isInstance(error) && Exception.class.isInstance(error.getCause())) {
            error = Exception.class.cast(error.getCause());
        }
        return error;
    }