Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Optiona Throwable for an explicit recoverer
According to Javadoc of `@Recover`, the `Throwable` first argument is optional. Before this commit, ``` java.lang.NullPointerException: Cannot invoke "java.lang.Class.isAssignableFrom(java.lang.Class)" because "meta.type" is null at org.springframework.retry.annotation.RecoverAnnotationRecoveryHandler.findClosestMatch(RecoverAnnotationRecoveryHandler.java:154) at org.springframework.retry.annotation.RecoverAnnotationRecoveryHandler.recover(RecoverAnnotationRecoveryHandler.java:75) at org.springframework.retry.interceptor.RetryOperationsInterceptor$ItemRecovererCallback.recover(RetryOperationsInterceptor.java:159) at org.springframework.retry.support.RetryTemplate.handleRetryExhausted(RetryTemplate.java:543) at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:389) at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:225) at org.springframework.retry.interceptor.RetryOperationsInterceptor.invoke(RetryOperationsInterceptor.java:124) at org.springframework.retry.annotation.AnnotationAwareRetryOperationsInterceptor.invoke(AnnotationAwareRetryOperationsInterceptor.java:160) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) ``` is raised for ```java @retryable(retryFor = RuntimeException.class, recover = "recover") public String service(String param) { throw new RuntimeException("Planned"); } @recover public String recover(String param) { return param; } ```
- Loading branch information