diff --git a/redisson/src/main/java/org/redisson/client/handler/CommandDecoder.java b/redisson/src/main/java/org/redisson/client/handler/CommandDecoder.java index e5f5e5574..4e177211b 100644 --- a/redisson/src/main/java/org/redisson/client/handler/CommandDecoder.java +++ b/redisson/src/main/java/org/redisson/client/handler/CommandDecoder.java @@ -98,7 +98,7 @@ public class CommandDecoder extends ReplayingDecoder { } } } else { - if (!holder.getChannelPromise().isSuccess()) { + if (holder.getChannelPromise().isDone() && !holder.getChannelPromise().isSuccess()) { sendNext(ctx.channel()); // throw REPLAY error in.indexOf(Integer.MAX_VALUE/2, Integer.MAX_VALUE, (byte) 0); diff --git a/redisson/src/main/java/org/redisson/command/RedisExecutor.java b/redisson/src/main/java/org/redisson/command/RedisExecutor.java index a36c554ae..13b2185ff 100644 --- a/redisson/src/main/java/org/redisson/command/RedisExecutor.java +++ b/redisson/src/main/java/org/redisson/command/RedisExecutor.java @@ -187,7 +187,7 @@ public class RedisExecutor { TimerTask task = timeout -> { if (connectionFuture.cancel(false)) { exception = new RedisTimeoutException("Unable to acquire connection! " + this.connectionFuture + - "Increase connection pool size. " + "Increase connection pool size or timeout. " + "Node source: " + source + ", command: " + LogHelper.toString(command, params) + " after " + attempt + " retry attempts");