Support direct matching against exceptions in ExceptionTypeFilter

Prior to this commit, ExceptionTypeFilter only supported matching
against an exception type. However, most use cases involve matching
against an exception instance. Moreover, every use case within the core
Spring Framework uses ExceptionTypeFilter to match against concrete
exception instances.

This commit therefore introduces an overloaded match(Throwable) method
in ExceptionTypeFilter in order to provide support for the most common
use cases.

See gh-35109
Closes gh-35160
This commit is contained in:
Sam Brannen
2025-07-05 13:13:47 +02:00
parent 33f51b183d
commit 17df4b4c38
8 changed files with 57 additions and 45 deletions
@@ -65,7 +65,7 @@ public record MethodRetrySpec(
MethodRetryPredicate combinedPredicate() {
ExceptionTypeFilter exceptionFilter = new ExceptionTypeFilter(this.includes, this.excludes);
return (method, throwable) -> exceptionFilter.match(throwable.getClass()) &&
return (method, throwable) -> exceptionFilter.match(throwable) &&
this.predicate.shouldRetry(method, throwable);
}