private static <T> BiPredicate<ClientRequestContext, T> combinePredicates(
            @Nullable BiPredicate<ClientRequestContext, T> firstPredicate,
            BiPredicate<? super ClientRequestContext, ? super T> secondPredicate,
            String paramName) {

        requireNonNull(secondPredicate, paramName);
        if (firstPredicate != null) {
            return firstPredicate.or(secondPredicate);
        }

        @SuppressWarnings("unchecked")
        final BiPredicate<ClientRequestContext, T> cast =
                (BiPredicate<ClientRequestContext, T>) secondPredicate;
        return cast;
    }
Adds {@link TimeoutException}.

<p>When this is used for a {@link CircuitBreakerRule}, a {@link Response} is reported as a success or
failure to a {@link CircuitBreaker} or ignored depending on the build methods({@code #thenSuccess()},
{@code #thenFailure()} and {@code #thenIgnore()}).
core/src/main/java/com/linecorp/armeria/client/AbstractRuleBuilder.java