Class MethodInvocationRetryListenerSupport

java.lang.Object
org.springframework.retry.listener.MethodInvocationRetryListenerSupport
All Implemented Interfaces:
RetryListener

public class MethodInvocationRetryListenerSupport extends Object implements RetryListener

Empty method implementation of RetryListener with focus on the AOP reflective method invocations providing convenience retry listener type-safe (with a `MethodInvocationRetryCallback` callback parameter) specific methods.

NOTE that this listener performs an action only when dealing with callbacks that are instances of MethodInvocationRetryCallback.
Since:
1.3
Author:
Marius Grama
  • Constructor Details

    • MethodInvocationRetryListenerSupport

      public MethodInvocationRetryListenerSupport()
  • Method Details

    • close

      public <T, E extends Throwable> void close(RetryContext context, RetryCallback<T,E> callback, Throwable throwable)
      Description copied from interface: RetryListener
      Called after the final attempt (successful or not). Allow the listener to clean up any resource it is holding before control returns to the retry caller.
      Specified by:
      close in interface RetryListener
      Type Parameters:
      T - the return value
      E - the exception type
      Parameters:
      context - the current RetryContext.
      callback - the current RetryCallback.
      throwable - the last exception that was thrown by the callback.
    • onSuccess

      public <T, E extends Throwable> void onSuccess(RetryContext context, RetryCallback<T,E> callback, T result)
      Description copied from interface: RetryListener
      Called after a successful attempt; allow the listener to throw a new exception to cause a retry (according to the retry policy), based on the result returned by the RetryCallback.doWithRetry(RetryContext)
      Specified by:
      onSuccess in interface RetryListener
      Type Parameters:
      T - the return type.
      Parameters:
      context - the current RetryContext.
      callback - the current RetryCallback.
      result - the result returned by the callback method.
    • onError

      public <T, E extends Throwable> void onError(RetryContext context, RetryCallback<T,E> callback, Throwable throwable)
      Description copied from interface: RetryListener
      Called after every unsuccessful attempt at a retry.
      Specified by:
      onError in interface RetryListener
      Type Parameters:
      T - the return value
      E - the exception to throw
      Parameters:
      context - the current RetryContext.
      callback - the current RetryCallback.
      throwable - the last exception that was thrown by the callback.
    • open

      public <T, E extends Throwable> boolean open(RetryContext context, RetryCallback<T,E> callback)
      Description copied from interface: RetryListener
      Called before the first attempt in a retry. For instance, implementers can set up state that is needed by the policies in the RetryOperations. The whole retry can be vetoed by returning false from this method, in which case a TerminatedRetryException will be thrown.
      Specified by:
      open in interface RetryListener
      Type Parameters:
      T - the type of object returned by the callback
      E - the type of exception it declares may be thrown
      Parameters:
      context - the current RetryContext.
      callback - the current RetryCallback.
      Returns:
      true if the retry should proceed.
    • doClose

      protected <T, E extends Throwable> void doClose(RetryContext context, MethodInvocationRetryCallback<T,E> callback, Throwable throwable)
      Called after the final attempt (successful or not). Allow the listener to clean up any resource it is holding before control returns to the retry caller.
      Type Parameters:
      E - the exception type
      T - the return value
      Parameters:
      context - the current RetryContext.
      callback - the current RetryCallback.
      throwable - the last exception that was thrown by the callback.
    • doOnSuccess

      protected <T, E extends Throwable> void doOnSuccess(RetryContext context, MethodInvocationRetryCallback<T,E> callback, T result)
      Called after a successful attempt; allow the listener to throw a new exception to cause a retry (according to the retry policy), based on the result returned by the RetryCallback.doWithRetry(RetryContext)
      Type Parameters:
      T - the return type.
      Parameters:
      context - the current RetryContext.
      callback - the current RetryCallback.
      result - the result returned by the callback method.
      Since:
      2.0
    • doOnError

      protected <T, E extends Throwable> void doOnError(RetryContext context, MethodInvocationRetryCallback<T,E> callback, Throwable throwable)
      Called after every unsuccessful attempt at a retry.
      Type Parameters:
      T - the return value
      E - the exception to throw
      Parameters:
      context - the current RetryContext.
      callback - the current RetryCallback.
      throwable - the last exception that was thrown by the callback.
    • doOpen

      protected <T, E extends Throwable> boolean doOpen(RetryContext context, MethodInvocationRetryCallback<T,E> callback)
      Called before the first attempt in a retry. For instance, implementers can set up state that is needed by the policies in the RetryOperations. The whole retry can be vetoed by returning false from this method, in which case a TerminatedRetryException will be thrown.
      Type Parameters:
      T - the type of object returned by the callback
      E - the type of exception it declares may be thrown
      Parameters:
      context - the current RetryContext.
      callback - the current RetryCallback.
      Returns:
      true if the retry should proceed.