From 0132bdd97f1bb55f2bbb7d0621e594c5a2dd2a44 Mon Sep 17 00:00:00 2001 From: Michael Simons Date: Mon, 18 Mar 2024 14:41:58 +0100 Subject: [PATCH] refactor: Improve retry predicate by delegating to the driver first. --- .../data/neo4j/core/support/RetryExceptionPredicate.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/org/springframework/data/neo4j/core/support/RetryExceptionPredicate.java b/src/main/java/org/springframework/data/neo4j/core/support/RetryExceptionPredicate.java index e4bfb5303..14223fb98 100644 --- a/src/main/java/org/springframework/data/neo4j/core/support/RetryExceptionPredicate.java +++ b/src/main/java/org/springframework/data/neo4j/core/support/RetryExceptionPredicate.java @@ -20,6 +20,7 @@ import java.util.function.Predicate; import org.apiguardian.api.API; import org.neo4j.driver.exceptions.DiscoveryException; +import org.neo4j.driver.exceptions.RetryableException; import org.neo4j.driver.exceptions.ServiceUnavailableException; import org.neo4j.driver.exceptions.SessionExpiredException; import org.neo4j.driver.exceptions.TransientException; @@ -43,6 +44,10 @@ public final class RetryExceptionPredicate implements Predicate { @Override public boolean test(Throwable throwable) { + if (throwable instanceof RetryableException) { + return true; + } + if (throwable instanceof IllegalStateException) { String msg = throwable.getMessage(); return msg != null && RETRYABLE_ILLEGAL_STATE_MESSAGES.contains(msg);