Skip to content

Commit 19a6eaf

Browse files
authored
Make more error codes fail fast during the rediscovery (#1354)
neo4j-drivers/testkit#536
1 parent 6b29f12 commit 19a6eaf

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

driver/src/main/java/org/neo4j/driver/internal/cluster/RediscoveryImpl.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,12 @@ public class RediscoveryImpl implements Rediscovery {
6060
"Received a recoverable discovery error with server '%s', "
6161
+ "will continue discovery with other routing servers if available. "
6262
+ "Complete failure is reported separately from this entry.";
63-
private static final String INVALID_BOOKMARK_CODE = "Neo.ClientError.Transaction.InvalidBookmark";
64-
private static final String INVALID_BOOKMARK_MIXTURE_CODE = "Neo.ClientError.Transaction.InvalidBookmarkMixture";
63+
private static final String TRANSACTION_INVALID_BOOKMARK_CODE = "Neo.ClientError.Transaction.InvalidBookmark";
64+
private static final String TRANSACTION_INVALID_BOOKMARK_MIXTURE_CODE =
65+
"Neo.ClientError.Transaction.InvalidBookmarkMixture";
66+
private static final String STATEMENT_ARGUMENT_ERROR_CODE = "Neo.ClientError.Statement.ArgumentError";
67+
private static final String REQUEST_INVALID_CODE = "Neo.ClientError.Request.Invalid";
68+
private static final String STATEMENT_TYPE_ERROR_CODE = "Neo.ClientError.Statement.TypeError";
6569

6670
private final BoltServerAddress initialRouter;
6771
private final Logger log;
@@ -294,7 +298,13 @@ private boolean mustAbortDiscovery(Throwable throwable) {
294298
abort = true;
295299
} else if (throwable instanceof ClientException) {
296300
String code = ((ClientException) throwable).code();
297-
abort = INVALID_BOOKMARK_CODE.equals(code) || INVALID_BOOKMARK_MIXTURE_CODE.equals(code);
301+
abort = switch (code) {
302+
case TRANSACTION_INVALID_BOOKMARK_CODE,
303+
TRANSACTION_INVALID_BOOKMARK_MIXTURE_CODE,
304+
STATEMENT_ARGUMENT_ERROR_CODE,
305+
REQUEST_INVALID_CODE,
306+
STATEMENT_TYPE_ERROR_CODE -> true;
307+
default -> false;};
298308
}
299309

300310
return abort;

0 commit comments

Comments
 (0)