From 9d62ead0e4e80fdb2608ebdb8f651f22c030ea07 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Tue, 29 Oct 2019 09:51:21 +0100 Subject: [PATCH] DATAREDIS-1053 - Polishing. Use early return and fix issue reference in tests. Original Pull Request: #488 --- ...ReactiveRedisMessageListenerContainer.java | 45 +++++++++---------- .../core/ReactiveRedisTemplateUnitTests.java | 3 +- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/listener/ReactiveRedisMessageListenerContainer.java b/src/main/java/org/springframework/data/redis/listener/ReactiveRedisMessageListenerContainer.java index 98a4cd5fe..b19c2e6aa 100644 --- a/src/main/java/org/springframework/data/redis/listener/ReactiveRedisMessageListenerContainer.java +++ b/src/main/java/org/springframework/data/redis/listener/ReactiveRedisMessageListenerContainer.java @@ -101,31 +101,30 @@ public class ReactiveRedisMessageListenerContainer implements DisposableBean { private Mono doDestroy() { - ReactiveRedisConnection connection = this.connection; - - if (connection != null) { - - Flux terminationSignals = null; - while (!subscriptions.isEmpty()) { - - Map local = new HashMap<>(subscriptions); - List> monos = local.keySet().stream() // - .peek(subscriptions::remove) // - .map(ReactiveSubscription::cancel) // - .collect(Collectors.toList()); - - if (terminationSignals == null) { - terminationSignals = Flux.concat(monos); - } else { - terminationSignals = terminationSignals.mergeWith(Flux.concat(monos)); - } - } - - this.connection = null; - return terminationSignals != null ? terminationSignals.then(connection.closeLater()) : connection.closeLater(); + if (this.connection == null) { + return Mono.empty(); } - return Mono.empty(); + ReactiveRedisConnection connection = this.connection; + + Flux terminationSignals = null; + while (!subscriptions.isEmpty()) { + + Map local = new HashMap<>(subscriptions); + List> monos = local.keySet().stream() // + .peek(subscriptions::remove) // + .map(ReactiveSubscription::cancel) // + .collect(Collectors.toList()); + + if (terminationSignals == null) { + terminationSignals = Flux.concat(monos); + } else { + terminationSignals = terminationSignals.mergeWith(Flux.concat(monos)); + } + } + + this.connection = null; + return terminationSignals != null ? terminationSignals.then(connection.closeLater()) : connection.closeLater(); } /** diff --git a/src/test/java/org/springframework/data/redis/core/ReactiveRedisTemplateUnitTests.java b/src/test/java/org/springframework/data/redis/core/ReactiveRedisTemplateUnitTests.java index 94a8c98bc..eea56d975 100644 --- a/src/test/java/org/springframework/data/redis/core/ReactiveRedisTemplateUnitTests.java +++ b/src/test/java/org/springframework/data/redis/core/ReactiveRedisTemplateUnitTests.java @@ -25,7 +25,6 @@ import reactor.test.StepVerifier; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.Test; - import org.springframework.data.redis.connection.ReactivePubSubCommands; import org.springframework.data.redis.connection.ReactiveRedisConnection; import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; @@ -59,7 +58,7 @@ public class ReactiveRedisTemplateUnitTests { verifyNoMoreInteractions(connectionMock); } - @Test // DATAREDIS-999 + @Test // DATAREDIS-1053 public void listenToShouldSubscribeToChannel() { AtomicBoolean closed = new AtomicBoolean();