Class BambooCallables


  • public class BambooCallables
    extends Object
    • Method Detail

      • callUnchecked

        public static <V> V callUnchecked​(Callable<V> callable)
      • notThrowing

        public static <V> BambooCallables.NotThrowing<V> notThrowing​(BambooCallables.ThrowingX<V,​? extends Exception,​? extends Exception,​? extends Exception> callable)
        Returns a wrapped callable which does not throw checked exceptions. All checked exceptions thrown by the underlying callable are wrapped and re-thrown as runtime exceptions.
        Type Parameters:
        V - type of returned value
        Parameters:
        callable - throwing callable
        Returns:
        a decorated callable which does not throw checked exceptions
      • retryOnException

        public static <V,​E extends Throwable> V retryOnException​(BambooCallables.Throwing<V,​E> callable,
                                                                       Class<E> exceptionClass)
                                                                throws E extends Throwable
        Utility to re-attempt to execute a callable if it fails with a known exception.

        If the given callable fails with the provided exception class, this method will re-run the callable in attempt to obtain the result again. Subsequent failure will not be handled and the exception will be propagated.

        If the callable fails with a different exception than was expected, the actual exception will be re-thrown by this method.

        Throws:
        E extends Throwable
      • retryOnExceptions

        public static <V,​E extends Throwable> V retryOnExceptions​(BambooCallables.Throwing<V,​E> callable,
                                                                        Class<? extends Throwable>... exceptionClass)
                                                                 throws E extends Throwable
        Utility to re-attempt to execute a callable if it fails with a known exceptions.

        If the given callable fails with the provided exception class, this method will re-run the callable in attempt to obtain the result again. Subsequent failure will not be handled and the exception will be propagated.

        If the callable fails with a different exception than was expected, the actual exception will be re-thrown by this method.

        Throws:
        E extends Throwable
      • retryOnException

        public static <V> V retryOnException​(BambooCallables.NotThrowing<V> callable,
                                             Predicate<RuntimeException> exceptionPredicate)
        Utility to re-attempt to execute a callable if it fails with a known exception.

        If the given callable fails with an exception that matches the given predicate, this method will re-run the callable in attempt to obtain the result again. Subsequent failure will not be handled and the exception will be propagated.

        If the callable fails with a different exception than was expected, the actual exception will be re-thrown by this method.

      • retryOnException

        public static <V> V retryOnException​(BambooCallables.NotThrowing<V> callable,
                                             Predicate<RuntimeException> exceptionPredicate,
                                             int maxRetryCount)
        Utility to re-attempt to execute a callable if it fails with a known exception up to maxRetryCount times.

        If the given callable fails with an exception that matches the given predicate, this method will re-run the callable in attempt to obtain the result again. Subsequent failure will not be handled and the exception will be propagated.

        If the callable fails with a different exception than was expected, the actual exception will be re-thrown by this method.