From e2ac5e9327cabd970ed835d1d625aba00b4fd431 Mon Sep 17 00:00:00 2001 From: Nicola Dardanis Date: Mon, 13 Feb 2023 10:18:40 +0100 Subject: [PATCH] fix: properly handle exception and successful results Signed-off-by: Nicola Dardanis --- .../redisson/connection/ReplicatedConnectionManager.java | 6 ++++-- 1 file changed, 4 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 abde41b25..d6cf857bc 100644 --- a/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java @@ -218,7 +218,7 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager { } RedisConnection connection = connectionFuture.toCompletableFuture().join(); InetSocketAddress addr = connection.getRedisClient().getAddr(); - final Role role = Role.valueOf(r.get(ROLE_KEY)); + Role role = Role.valueOf(r.get(ROLE_KEY)); if (Role.master.equals(role)) { InetSocketAddress master = currentMaster.get(); if (master.equals(addr)) { @@ -226,9 +226,11 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager { } else if (currentMaster.compareAndSet(master, addr)) { CompletableFuture changeFuture = changeMaster(singleSlotRange.getStartSlot(), uri); return changeFuture.handle((ignored, e) -> { + if (e != null) { log.error("Unable to change master to {}", addr, e); currentMaster.compareAndSet(addr, master); - return role; + } + return role; }); } } else if (!config.checkSkipSlavesInit()) {