diff --git a/src/main/java/io/lettuce/core/internal/AsyncConnectionProvider.java b/src/main/java/io/lettuce/core/internal/AsyncConnectionProvider.java index 335450d5e..ff3019e96 100644 --- a/src/main/java/io/lettuce/core/internal/AsyncConnectionProvider.java +++ b/src/main/java/io/lettuce/core/internal/AsyncConnectionProvider.java @@ -72,17 +72,12 @@ private Sync getSynchronizer(K key) { throw new IllegalStateException("ConnectionProvider is already closed"); } - Sync sync = connections.get(key); - - if (sync != null) { - return sync; - } - AtomicBoolean atomicBoolean = new AtomicBoolean(); - sync = connections.computeIfAbsent(key, connectionKey -> { + Sync sync = connections.computeIfAbsent(key, connectionKey -> { Sync createdSync = new Sync<>(key, connectionFactory.apply(key)); + atomicBoolean.set(true); if (closed) { createdSync.cancel(); @@ -91,7 +86,7 @@ private Sync getSynchronizer(K key) { return createdSync; }); - if (atomicBoolean.compareAndSet(false, true)) { + if (atomicBoolean.get()) { sync.getConnection().whenComplete((c, t) -> {