From d9c97a881e26b2558bdc7c5283ffd5a2809479d2 Mon Sep 17 00:00:00 2001 From: Dmitry Bobrov Date: Wed, 16 Mar 2016 04:11:12 +0300 Subject: [PATCH] Stop HashedWheelTimer after exception in constructor --- .../redisson/cluster/ClusterConnectionManager.java | 6 +----- .../connection/MasterSlaveConnectionManager.java | 14 +++++++++----- 2 files changed, 10 insertions(+), 10 deletions(-) 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(); + } + } }