[ROCKETMQ-200]-Cluster name is always missing when fetch ClusterInfo from name server closes apache/incubator-rocketmq#105
Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/commit/c7961407 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/c7961407 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/c7961407 Branch: refs/heads/master Commit: c79614071b1941940f934c066bde5711062bdc7e Parents: 8c8610f Author: Jaskey <linjunjie1...@gmail.com> Authored: Sat May 27 11:24:02 2017 +0800 Committer: dongeforever <zhendongli...@yeah.net> Committed: Sat May 27 11:24:02 2017 +0800 ---------------------------------------------------------------------- .../rocketmq/common/protocol/route/BrokerData.java | 14 +++++++++++--- .../rocketmq/namesrv/routeinfo/RouteInfoManager.java | 10 ++-------- 2 files changed, 13 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c7961407/common/src/main/java/org/apache/rocketmq/common/protocol/route/BrokerData.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/rocketmq/common/protocol/route/BrokerData.java b/common/src/main/java/org/apache/rocketmq/common/protocol/route/BrokerData.java index 612e5b4..9d868ae 100644 --- a/common/src/main/java/org/apache/rocketmq/common/protocol/route/BrokerData.java +++ b/common/src/main/java/org/apache/rocketmq/common/protocol/route/BrokerData.java @@ -15,9 +15,7 @@ * limitations under the License. */ -/** - * $Id: BrokerData.java 1835 2013-05-16 02:00:50Z vintagew...@apache.org $ - */ + package org.apache.rocketmq.common.protocol.route; import java.util.HashMap; @@ -29,6 +27,16 @@ public class BrokerData implements Comparable<BrokerData> { private String brokerName; private HashMap<Long/* brokerId */, String/* broker address */> brokerAddrs; + public BrokerData() { + + } + + public BrokerData(String cluster, String brokerName, HashMap<Long, String> brokerAddrs) { + this.cluster = cluster; + this.brokerName = brokerName; + this.brokerAddrs = brokerAddrs; + } + public String selectBrokerAddr() { String value = this.brokerAddrs.get(MixAll.MASTER_ID); if (null == value) { http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c7961407/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java ---------------------------------------------------------------------- diff --git a/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java b/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java index 16b7847..5a953a9 100644 --- a/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java +++ b/namesrv/src/main/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManager.java @@ -125,11 +125,7 @@ public class RouteInfoManager { BrokerData brokerData = this.brokerAddrTable.get(brokerName); if (null == brokerData) { registerFirst = true; - brokerData = new BrokerData(); - brokerData.setBrokerName(brokerName); - HashMap<Long, String> brokerAddrs = new HashMap<Long, String>(); - brokerData.setBrokerAddrs(brokerAddrs); - + brokerData = new BrokerData(clusterName, brokerName, new HashMap<Long, String>()); this.brokerAddrTable.put(brokerName, brokerData); } String oldAddr = brokerData.getBrokerAddrs().put(brokerId, brokerAddr); @@ -381,9 +377,7 @@ public class RouteInfoManager { for (String brokerName : brokerNameSet) { BrokerData brokerData = this.brokerAddrTable.get(brokerName); if (null != brokerData) { - BrokerData brokerDataClone = new BrokerData(); - brokerDataClone.setBrokerName(brokerData.getBrokerName()); - brokerDataClone.setBrokerAddrs((HashMap<Long, String>) brokerData + BrokerData brokerDataClone = new BrokerData(brokerData.getCluster(), brokerData.getBrokerName(), (HashMap<Long, String>) brokerData .getBrokerAddrs().clone()); brokerDataList.add(brokerDataClone); foundBrokerData = true;