Skip to content

Commit 0bf3261

Browse files
GH-2311 - Include DiscoveryException in retry predicate.
Closes #2311.
1 parent f64d5f8 commit 0bf3261

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/main/java/org/springframework/data/neo4j/core/support/RetryExceptionPredicate.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.function.Predicate;
2323

2424
import org.apiguardian.api.API;
25+
import org.neo4j.driver.exceptions.DiscoveryException;
2526
import org.neo4j.driver.exceptions.ServiceUnavailableException;
2627
import org.neo4j.driver.exceptions.SessionExpiredException;
2728
import org.neo4j.driver.exceptions.TransientException;
@@ -60,7 +61,7 @@ public boolean test(Throwable throwable) {
6061
return !("Neo.TransientError.Transaction.Terminated".equals(code) ||
6162
"Neo.TransientError.Transaction.LockClientStopped".equals(code));
6263
} else {
63-
return ex instanceof SessionExpiredException || ex instanceof ServiceUnavailableException;
64+
return ex instanceof SessionExpiredException || ex instanceof ServiceUnavailableException || ex instanceof DiscoveryException;
6465
}
6566
}
6667
}

src/test/java/org/springframework/data/neo4j/core/support/RetryExceptionPredicateTest.java

+8
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.junit.jupiter.params.ParameterizedTest;
2222
import org.junit.jupiter.params.provider.ValueSource;
2323
import org.junit.platform.commons.util.ReflectionUtils;
24+
import org.neo4j.driver.exceptions.DiscoveryException;
2425
import org.neo4j.driver.exceptions.ServiceUnavailableException;
2526
import org.neo4j.driver.exceptions.SessionExpiredException;
2627
import org.springframework.dao.TransientDataAccessResourceException;
@@ -48,6 +49,13 @@ void shouldNotRetryOnRandomIllegalStateExceptions() {
4849
assertThat(predicate.test(new IllegalStateException())).isFalse();
4950
}
5051

52+
@Test // GH-2311
53+
void shouldRetryDiscoveryExceptions() {
54+
55+
RetryExceptionPredicate predicate = new RetryExceptionPredicate();
56+
assertThat(predicate.test(new DiscoveryException("Broken", new RuntimeException()))).isTrue();
57+
}
58+
5159
@Test
5260
void shouldPlayWellWithExceptionTranslator() {
5361

0 commit comments

Comments
 (0)