All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zalando.riptide.faults.DefaultFaultClassifier Maven / Gradle / Ivy

package org.zalando.riptide.faults;

import com.google.common.base.Throwables;

import java.util.function.Predicate;

final class DefaultFaultClassifier implements FaultClassifier {

    private final Predicate isTransient;

    public DefaultFaultClassifier(final Predicate isTransient) {
        this.isTransient = isTransient;
    }

    @Override
    public Throwable classify(final Throwable throwable) {
        for (final Throwable cause : Throwables.getCausalChain(throwable)) {
            if (isTransient.test(cause)) {
                return new TransientFaultException(throwable);
            }
        }

        return throwable;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy