org.springframework.scheduling.support

## Class TaskUtils

- java.lang.Object
- - org.springframework.scheduling.support.TaskUtils

-     public abstract class TaskUtils
      extends Object

  Utility methods for decorating tasks with error handling.

  NOTE: This class is intended for internal use by Spring's scheduler implementations. It is only public so that it may be accessed from implementations within other packages. It is not intended for general use and may change in the future.

  Since:
    3.0
  Author:
    Mark Fisher

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static ErrorHandler` | `LOG_AND_PROPAGATE_ERROR_HANDLER` An ErrorHandler strategy that will log at error level and then re-throw the Exception.
    `static ErrorHandler` | `LOG_AND_SUPPRESS_ERROR_HANDLER` An ErrorHandler strategy that will log the Exception but perform no further handling.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TaskUtils()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static DelegatingErrorHandlingRunnable` | `decorateTaskWithErrorHandler(Runnable task, ErrorHandler errorHandler, boolean isRepeatingTask)` Decorates the task for error handling.
    `static ErrorHandler` | `getDefaultErrorHandler(boolean isRepeatingTask)` Return the default `ErrorHandler` implementation based on the boolean value indicating whether the task will be repeating or not.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### LOG_AND_SUPPRESS_ERROR_HANDLER

          public static final ErrorHandler LOG_AND_SUPPRESS_ERROR_HANDLER

      An ErrorHandler strategy that will log the Exception but perform no further handling. This will suppress the error so that subsequent executions of the task will not be prevented.

    - #### LOG_AND_PROPAGATE_ERROR_HANDLER

          public static final ErrorHandler LOG_AND_PROPAGATE_ERROR_HANDLER

      An ErrorHandler strategy that will log at error level and then re-throw the Exception. Note: this will typically prevent subsequent execution of a scheduled task.

  - ### Constructor Detail

    - #### TaskUtils

          public TaskUtils()

  - ### Method Detail

    - #### decorateTaskWithErrorHandler

          public static DelegatingErrorHandlingRunnable decorateTaskWithErrorHandler(Runnable task,
                                                                     ErrorHandler errorHandler,
                                                                     boolean isRepeatingTask)

      Decorates the task for error handling. If the provided `ErrorHandler` is not null, it will be used. Otherwise, repeating tasks will have errors suppressed by default whereas one-shot tasks will have errors propagated by default since those errors may be expected through the returned `Future`. In both cases, the errors will be logged.

    - #### getDefaultErrorHandler

          public static ErrorHandler getDefaultErrorHandler(boolean isRepeatingTask)

      Return the default `ErrorHandler` implementation based on the boolean value indicating whether the task will be repeating or not. For repeating tasks it will suppress errors, but for one-time tasks it will propagate. In both cases, the error will be logged.