From 673fac3cc0d41e34baaed2c64714724f54067100 Mon Sep 17 00:00:00 2001 From: Nikita Date: Sat, 21 Nov 2015 13:32:30 +0300 Subject: [PATCH] timeout logging fixed --- .../java/org/redisson/client/handler/CommandDecoder.java | 7 ++++--- .../java/org/redisson/client/handler/CommandsQueue.java | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/redisson/client/handler/CommandDecoder.java b/src/main/java/org/redisson/client/handler/CommandDecoder.java index 7bd9e1b18..5bfa0e97c 100644 --- a/src/main/java/org/redisson/client/handler/CommandDecoder.java +++ b/src/main/java/org/redisson/client/handler/CommandDecoder.java @@ -27,6 +27,7 @@ import org.redisson.client.RedisException; import org.redisson.client.RedisLoadingException; import org.redisson.client.RedisMovedException; import org.redisson.client.RedisPubSubConnection; +import org.redisson.client.RedisTimeoutException; import org.redisson.client.protocol.CommandData; import org.redisson.client.protocol.CommandsData; import org.redisson.client.protocol.Decoder; @@ -123,7 +124,7 @@ public class CommandDecoder extends ReplayingDecoder { } private void handleCommandsDataResponse(ChannelHandlerContext ctx, ByteBuf in, QueueCommand data, - Decoder currentDecoder, CommandsData commands) throws Exception { + Decoder currentDecoder, CommandsData commands) { int i = state().getIndex(); while (in.writerIndex() > in.readerIndex()) { @@ -141,7 +142,7 @@ public class CommandDecoder extends ReplayingDecoder { if (i == commands.getCommands().size()) { Promise promise = commands.getPromise(); - if (!promise.trySuccess(null)) { + if (!promise.trySuccess(null) && promise.cause() instanceof RedisTimeoutException) { log.warn("response has been skipped due to timeout! channel: {}, command: {}", ctx.channel(), data); } @@ -277,7 +278,7 @@ public class CommandDecoder extends ReplayingDecoder { if (parts != null) { parts.add(result); } else { - if (!data.getPromise().trySuccess(result)) { + if (!data.getPromise().trySuccess(result) && data.getPromise().cause() instanceof RedisTimeoutException) { log.warn("response has been skipped due to timeout! channel: {}, command: {}, result: {}", channel, data, result); } } diff --git a/src/main/java/org/redisson/client/handler/CommandsQueue.java b/src/main/java/org/redisson/client/handler/CommandsQueue.java index 880371ffe..91d5cfdee 100644 --- a/src/main/java/org/redisson/client/handler/CommandsQueue.java +++ b/src/main/java/org/redisson/client/handler/CommandsQueue.java @@ -42,7 +42,7 @@ public class CommandsQueue extends ChannelDuplexHandler { private final Queue queue = PlatformDependent.newMpscQueue(); - public void sendNextCommand(ChannelHandlerContext ctx) throws Exception { + public void sendNextCommand(ChannelHandlerContext ctx) { ctx.channel().attr(CommandsQueue.REPLAY).remove(); queue.poll(); sendData(ctx); @@ -64,7 +64,7 @@ public class CommandsQueue extends ChannelDuplexHandler { } } - private void sendData(final ChannelHandlerContext ctx) throws Exception { + private void sendData(final ChannelHandlerContext ctx) { QueueCommandHolder command = queue.peek(); if (command != null && command.getSended().compareAndSet(false, true)) { QueueCommand data = command.getCommand();