From 1d22c2c30239d3dbce174c98932ba99a37c421db Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Sun, 21 Jul 2024 08:44:15 +0300 Subject: [PATCH] Fixed - Can't connect to servers error doesn't show exception reported during connection. #384 --- .../redisson/connection/ReplicatedConnectionManager.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java b/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java index a82d62ea5..e2e6fa951 100644 --- a/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java @@ -75,6 +75,7 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager { throw new IllegalArgumentException("At least one Redis node should be defined!"); } + Exception ex = null; for (String address : cfg.getNodeAddresses()) { RedisURI addr = new RedisURI(address); CompletionStage connectionFuture = connectToNode(cfg, addr, addr.getHost()); @@ -82,7 +83,11 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager { try { connection = connectionFuture.toCompletableFuture().join(); } catch (Exception e) { - // skip + if (ex != null) { + ex.addSuppressed(e); + } else { + ex = e; + } } if (connection == null) { continue; @@ -101,7 +106,7 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager { if (currentMaster.get() == null) { internalShutdown(); - throw new RedisConnectionException("Can't connect to servers!"); + throw new RedisConnectionException("Can't connect to servers!", ex); } if (this.config.getReadMode() != ReadMode.MASTER && this.config.getSlaveAddresses().isEmpty()) { log.warn("ReadMode = {}, but slave nodes are not found! Please specify all nodes in replicated mode.", this.config.getReadMode());