From a98c8e414105cd018615cbfc4ecd56619c8a04c6 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 20 Jul 2023 10:33:04 +0200 Subject: [PATCH] Ensure single listener notification on exceptional completion #2457 --- .../lettuce/core/CommandListenerWriter.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/main/java/io/lettuce/core/CommandListenerWriter.java b/src/main/java/io/lettuce/core/CommandListenerWriter.java index e199dbd6b5..a606042bef 100644 --- a/src/main/java/io/lettuce/core/CommandListenerWriter.java +++ b/src/main/java/io/lettuce/core/CommandListenerWriter.java @@ -156,9 +156,7 @@ public RedisCommandListenerCommand(RedisCommand command, Clock clock, M } @Override - public void complete() { - super.complete(); - + protected void doOnComplete() { if (getOutput().hasError()) { CommandFailedEvent failedEvent = new CommandFailedEvent((RedisCommand) command, context, @@ -173,20 +171,15 @@ public void complete() { } @Override - public void cancel() { - super.cancel(); - } - - @Override - public boolean completeExceptionally(Throwable throwable) { - - boolean state = super.completeExceptionally(throwable); - + protected void doOnError(Throwable throwable) { CommandFailedEvent failedEvent = new CommandFailedEvent((RedisCommand) command, context, throwable); listener.commandFailed(failedEvent); + } - return state; + @Override + public void cancel() { + super.cancel(); } }