Class RethrowOnThresholdExceptionHandler
java.lang.Object
org.springframework.batch.repeat.exception.RethrowOnThresholdExceptionHandler
- All Implemented Interfaces:
ExceptionHandler
Implementation of
ExceptionHandler
that rethrows when exceptions of a given
type reach a threshold. Requires an Classifier
that maps exception types to
unique keys, and also a map from those keys to threshold values (Integer type).- Author:
- Dave Syer
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
handleException
(RepeatContext context, Throwable throwable) Classify the throwables and decide whether to re-throw based on the result.void
setThresholds
(Map<Class<? extends Throwable>, Integer> thresholds) A map from exception classes to a threshold value of type Integer.void
setUseParent
(boolean useParent) Flag to indicate the exception counters should be shared between sibling contexts in a nested batch.
-
Field Details
-
ZERO
protected static final org.springframework.batch.repeat.exception.RethrowOnThresholdExceptionHandler.IntegerHolder ZERO -
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
RethrowOnThresholdExceptionHandler
public RethrowOnThresholdExceptionHandler()Set up the exception handler. Creates a default exception handler and threshold that maps all exceptions to a threshold of 0 - all exceptions are rethrown by default.
-
-
Method Details
-
setUseParent
public void setUseParent(boolean useParent) Flag to indicate the exception counters should be shared between sibling contexts in a nested batch. Default is false.- Parameters:
useParent
- true if the parent context should be used to store the counters.
-
setThresholds
A map from exception classes to a threshold value of type Integer.- Parameters:
thresholds
- the threshold value map.
-
handleException
Classify the throwables and decide whether to re-throw based on the result. The context is used to accumulate the number of exceptions of the same type according to the classifier.- Specified by:
handleException
in interfaceExceptionHandler
- Parameters:
context
- the currentRepeatContext
. Can be used to store state (via attributes), for example to count the number of occurrences of a particular exception type and implement a threshold policy.throwable
- an exception.- Throws:
Throwable
- is thrown if number of exceptions exceeds threshold.- See Also:
-