Class BambooCallables
- java.lang.Object
-
- com.atlassian.bamboo.utils.BambooCallables
-
public class BambooCallables extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
BambooCallables.NotThrowing<V>
static interface
BambooCallables.Throwing<V,E1 extends Throwable>
static interface
BambooCallables.Throwing1<V,E1 extends Throwable>
static interface
BambooCallables.Throwing2<V,E1 extends Throwable,E2 extends Throwable>
static interface
BambooCallables.ThrowingX<V,E1 extends Throwable,E2 extends Throwable,E3 extends Throwable>
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <V> V
callUnchecked(Callable<V> callable)
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.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.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.static <V,E extends Throwable>
VretryOnException(BambooCallables.Throwing<V,E> callable, Class<E> exceptionClass)
Utility to re-attempt to execute a callable if it fails with a known exception.static <V,E extends Throwable>
VretryOnExceptions(BambooCallables.Throwing<V,E> callable, Class<? extends Throwable>... exceptionClass)
Utility to re-attempt to execute a callable if it fails with a known exceptions.
-
-
-
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.
-
-