From 5ab7c73691f882b426053abbb348e1472a7bd286 Mon Sep 17 00:00:00 2001 From: Nikita Date: Fri, 29 Jan 2016 12:37:22 +0300 Subject: [PATCH] SELECT command can't be executed with Sentinel node. #387 --- .../java/org/redisson/connection/ClientConnectionsEntry.java | 2 +- .../org/redisson/connection/DefaultConnectionListener.java | 2 +- .../org/redisson/connection/SentinelConnectionManager.java | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/redisson/connection/ClientConnectionsEntry.java b/src/main/java/org/redisson/connection/ClientConnectionsEntry.java index 25453c6fa..efc8f2075 100644 --- a/src/main/java/org/redisson/connection/ClientConnectionsEntry.java +++ b/src/main/java/org/redisson/connection/ClientConnectionsEntry.java @@ -48,7 +48,7 @@ public class ClientConnectionsEntry { private FreezeReason freezeReason; final RedisClient client; - public enum NodeType {SLAVE, MASTER} + public enum NodeType {SLAVE, MASTER, SENTINEL} private final NodeType nodeType; private ConnectionManager connectionManager; diff --git a/src/main/java/org/redisson/connection/DefaultConnectionListener.java b/src/main/java/org/redisson/connection/DefaultConnectionListener.java index af660cb44..54a972051 100644 --- a/src/main/java/org/redisson/connection/DefaultConnectionListener.java +++ b/src/main/java/org/redisson/connection/DefaultConnectionListener.java @@ -36,7 +36,7 @@ public class DefaultConnectionListener implements ConnectionInitializer { if (config.getPassword() != null) { connectionListener.addCommand(RedisCommands.AUTH, config.getPassword()); } - if (config.getDatabase() != 0) { + if (config.getDatabase() != 0 && serverMode != NodeType.SENTINEL) { connectionListener.addCommand(RedisCommands.SELECT, config.getDatabase()); } if (config.getClientName() != null) { diff --git a/src/main/java/org/redisson/connection/SentinelConnectionManager.java b/src/main/java/org/redisson/connection/SentinelConnectionManager.java index 4d18405f9..c39ac8c8d 100755 --- a/src/main/java/org/redisson/connection/SentinelConnectionManager.java +++ b/src/main/java/org/redisson/connection/SentinelConnectionManager.java @@ -37,6 +37,7 @@ import org.redisson.client.codec.StringCodec; import org.redisson.client.protocol.RedisCommands; import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.connection.ClientConnectionsEntry.FreezeReason; +import org.redisson.connection.ClientConnectionsEntry.NodeType; import org.redisson.misc.URIBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,7 +70,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager { continue; } Promise f = newPromise(); - connectListener.onConnect(f, connection, null, c); + connectListener.onConnect(f, connection, NodeType.SENTINEL, c); f.syncUninterruptibly(); // TODO async