diff --git a/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java b/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java index 792c01484..329ff31fa 100644 --- a/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java @@ -84,6 +84,7 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager { Role role = Role.valueOf(connection.sync(RedisCommands.INFO_REPLICATION).get(ROLE_KEY)); if (Role.master.equals(role)) { if (currentMaster.get() != null) { + stopThreads(); throw new RedisException("Multiple masters detected"); } currentMaster.set(addr); @@ -96,6 +97,7 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager { } if (currentMaster.get() == null) { + stopThreads(); throw new RedisConnectionException("Can't connect to servers!"); } diff --git a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java index bd13f9462..4e9c3588c 100755 --- a/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/SentinelConnectionManager.java @@ -71,6 +71,10 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { this.config = create(cfg); initTimer(this.config); + if (cfg.getMasterName() == null) { + throw new IllegalArgumentException("masterName parameter is not defined!"); + } + for (URI addr : cfg.getSentinelAddresses()) { RedisClient client = createClient(NodeType.SENTINEL, addr, this.config.getConnectTimeout(), this.config.getRetryInterval() * this.config.getRetryAttempts()); try { @@ -119,6 +123,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { } if (currentMaster.get() == null) { + stopThreads(); throw new RedisConnectionException("Can't connect to servers!"); } init(this.config);