diff --git a/src/main/java/org/redisson/cluster/ClusterConnectionManager.java b/src/main/java/org/redisson/cluster/ClusterConnectionManager.java index 22729473c..d0bc0cf36 100644 --- a/src/main/java/org/redisson/cluster/ClusterConnectionManager.java +++ b/src/main/java/org/redisson/cluster/ClusterConnectionManager.java @@ -96,11 +96,7 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { } if (lastPartitions.isEmpty()) { - try { - group.shutdownGracefully().await(); - } catch (Exception e) { - // skip it - } + stopThreads(); throw new RedisConnectionException("Can't connect to servers!", lastException); } diff --git a/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java b/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java index 5b6698058..1fb69f386 100644 --- a/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java +++ b/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java @@ -202,11 +202,7 @@ public class MasterSlaveConnectionManager implements ConnectionManager { try { initEntry(config); } catch (RuntimeException e) { - try { - group.shutdownGracefully().await(); - } catch (Exception e1) { - // skip - } + stopThreads(); throw e; } } @@ -741,4 +737,12 @@ public class MasterSlaveConnectionManager implements ConnectionManager { return connectionEventsHub; } + protected void stopThreads() { + timer.stop(); + try { + group.shutdownGracefully().await(); + } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); + } + } }