Class RethrowOnThresholdExceptionHandler

java.lang.Object
org.springframework.batch.repeat.exception.RethrowOnThresholdExceptionHandler
All Implemented Interfaces:
ExceptionHandler

public class RethrowOnThresholdExceptionHandler extends Object implements 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 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

      public void setThresholds(Map<Class<? extends Throwable>,Integer> thresholds)
      A map from exception classes to a threshold value of type Integer.
      Parameters:
      thresholds - the threshold value map.
    • handleException

      public void handleException(RepeatContext context, Throwable throwable) throws Throwable
      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 interface ExceptionHandler
      Parameters:
      context - the current RepeatContext. 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: