From b12f49b41692cf233ae5ba615f8e9f7e2f324d8f Mon Sep 17 00:00:00 2001 From: Nikita Date: Thu, 22 Oct 2015 19:36:28 +0300 Subject: [PATCH] parsing cluster nodes info fixed --- .../connection/ClusterConnectionManager.java | 15 ++++++++++----- .../redisson/connection/ClusterNodeInfo.java | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/redisson/connection/ClusterConnectionManager.java b/src/main/java/org/redisson/connection/ClusterConnectionManager.java index 3ce9d253e..eeed60926 100644 --- a/src/main/java/org/redisson/connection/ClusterConnectionManager.java +++ b/src/main/java/org/redisson/connection/ClusterConnectionManager.java @@ -282,13 +282,18 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { } if (params.length > 8) { - String slots = params[8]; - String[] parts = slots.split("-"); - node.setStartSlot(Integer.valueOf(parts[0])); - node.setEndSlot(Integer.valueOf(parts[1])); + for (int i = 0; i < params.length - 8; i++) { + String slots = params[i + 8]; + String[] parts = slots.split("-"); + node = new ClusterNodeInfo(node); + node.setStartSlot(Integer.valueOf(parts[0])); + node.setEndSlot(Integer.valueOf(parts[1])); + nodes.add(node); + } + } else { + nodes.add(node); } - nodes.add(node); } return nodes; } diff --git a/src/main/java/org/redisson/connection/ClusterNodeInfo.java b/src/main/java/org/redisson/connection/ClusterNodeInfo.java index 2561254ab..78ef12322 100644 --- a/src/main/java/org/redisson/connection/ClusterNodeInfo.java +++ b/src/main/java/org/redisson/connection/ClusterNodeInfo.java @@ -33,6 +33,17 @@ public class ClusterNodeInfo { private int startSlot; private int endSlot; + public ClusterNodeInfo() { + } + + public ClusterNodeInfo(ClusterNodeInfo info) { + this.nodeId = info.nodeId; + this.address = info.address; + this.flags = info.flags; + this.slaveOf = info.slaveOf; + this.startSlot = info.startSlot; + this.endSlot = info.endSlot; + } public String getNodeId() { return nodeId; } @@ -74,5 +85,12 @@ public class ClusterNodeInfo { public void setEndSlot(int endSlot) { this.endSlot = endSlot; } + @Override + public String toString() { + return "ClusterNodeInfo [nodeId=" + nodeId + ", address=" + address + ", flags=" + flags + + ", slaveOf=" + slaveOf + ", startSlot=" + startSlot + ", endSlot=" + endSlot + "]"; + } + + }