From 19d7a301437b4a17067899b946566ef7261ebec8 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 11 Feb 2020 11:11:39 +0100 Subject: [PATCH] DATAREDIS-1097 - Improve synchronization on failure in StreamMessageListenerContainer. Perform cancellation first, then notify the error handler to avoid race contions such as a notified error handler while the container is still active. --- .../org/springframework/data/redis/stream/StreamPollTask.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/stream/StreamPollTask.java b/src/main/java/org/springframework/data/redis/stream/StreamPollTask.java index e1c48175f..e4ed51ad9 100644 --- a/src/main/java/org/springframework/data/redis/stream/StreamPollTask.java +++ b/src/main/java/org/springframework/data/redis/stream/StreamPollTask.java @@ -148,11 +148,11 @@ class StreamPollTask> implements Task { Thread.currentThread().interrupt(); } catch (RuntimeException e) { - errorHandler.handleError(e); - if (cancelSubscriptionOnError.test(e)) { cancel(); } + + errorHandler.handleError(e); } } while (pollState.isSubscriptionActive()); }