• 0.26.0

Repeating Java methods on exception

Annotate your methods with @RetryOnFailure annotation and, in case of exception in the method, its execution will be repeated a few times:

public class Resource {
  @RetryOnFailure(attempts = 2, delay = 10, verbose = false)
  public String load(URL url) {
    return url.openConnection().getContent();
  }
}

If an exception occurs, the method will retry two times, with a 10 msec exponential back-off delay between attempts.

Since version 0.7.8, you can change time units used for delays (milliseconds by default). For example, this method will wait for two minutes between attempts:

public class Resource {
  @RetryOnFailure(delay = 2, unit = TimeUnit.MINUTES)
  public String load(URL url) {
    // loading of resource
  }
}

The mechanism is implemented with AOP/AspectJ. Read how to integrate it into your pom.xml.