From ef97459b647861112d0cdf008795c0a5433adbc2 Mon Sep 17 00:00:00 2001 From: seakider Date: Mon, 20 May 2024 11:58:07 +0800 Subject: [PATCH 1/2] Fixed - releaseConnection may not execute correctly Signed-off-by: seakider --- .../java/org/redisson/command/RedisQueuedBatchExecutor.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java b/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java index 7cc76c81e..c4efa4e80 100644 --- a/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java +++ b/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java @@ -100,7 +100,10 @@ public class RedisQueuedBatchExecutor extends BaseRedisBatchExecutor || RedisCommands.DISCARD.getName().equals(command.getName())) { if (attempt < attempts && attemptPromise.isCompletedExceptionally()) { - return; + Throwable cause = cause(attemptPromise); + if (cause instanceof CancellationException) { + return; + } } super.releaseConnection(attemptPromise, connectionFuture); From df46410df4e871e0a7842ced923c5b9151e88095 Mon Sep 17 00:00:00 2001 From: seakider Date: Mon, 20 May 2024 15:35:10 +0800 Subject: [PATCH 2/2] Fixed - releaseConnection may not execute correctly. simplified code. Signed-off-by: seakider --- .../org/redisson/command/RedisQueuedBatchExecutor.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java b/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java index c4efa4e80..bd6e2d4f1 100644 --- a/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java +++ b/redisson/src/main/java/org/redisson/command/RedisQueuedBatchExecutor.java @@ -99,11 +99,8 @@ public class RedisQueuedBatchExecutor extends BaseRedisBatchExecutor if (RedisCommands.EXEC.getName().equals(command.getName()) || RedisCommands.DISCARD.getName().equals(command.getName())) { if (attempt < attempts - && attemptPromise.isCompletedExceptionally()) { - Throwable cause = cause(attemptPromise); - if (cause instanceof CancellationException) { - return; - } + && attemptPromise.isCancelled()) { + return; } super.releaseConnection(attemptPromise, connectionFuture);