public Object doWithRetry(final ProceedingJoinPoint pjp, final Retry retry)
throws Throwable {
final RetryInvocation ri = new RetryInvocationJoinPointWrapper(pjp);
final RetryDefinition rd = this.annotationDefinitionSource
.createDefinition(retry, this.beanFactory);
final RetryHandler rh = new RetryHandler();
return rh.handleWithRetry(ri, rd);
}