From ce274265db8af73e28624ecc1fc98cc984658844 Mon Sep 17 00:00:00 2001 From: mxsm Date: Mon, 8 Aug 2022 17:11:14 +0800 Subject: [PATCH] [ISSUE #4794] Fix deserialize ElectMasterResponseHeader attribute value of brokerMemberGroup is null (#4796) --- .../rocketmq/common/protocol/body/BrokerMemberGroup.java | 3 ++- .../controller/impl/manager/ReplicasInfoManager.java | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/org/apache/rocketmq/common/protocol/body/BrokerMemberGroup.java b/common/src/main/java/org/apache/rocketmq/common/protocol/body/BrokerMemberGroup.java index eb02f88678..7e24da3640 100644 --- a/common/src/main/java/org/apache/rocketmq/common/protocol/body/BrokerMemberGroup.java +++ b/common/src/main/java/org/apache/rocketmq/common/protocol/body/BrokerMemberGroup.java @@ -21,8 +21,9 @@ import com.google.common.base.Objects; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import org.apache.rocketmq.remoting.protocol.RemotingSerializable; -public class BrokerMemberGroup { +public class BrokerMemberGroup extends RemotingSerializable { private String cluster; private String brokerName; private Map brokerAddrs; diff --git a/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java b/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java index be53e2d876..a53c7ca9d7 100644 --- a/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java +++ b/controller/src/main/java/org/apache/rocketmq/controller/impl/manager/ReplicasInfoManager.java @@ -211,8 +211,10 @@ public class ReplicasInfoManager { response.setNewMasterAddress(candidate); response.setMasterEpoch(masterEpoch + 1); response.setSyncStateSetEpoch(syncStateSetEpoch); - response.setBrokerMemberGroup(buildBrokerMemberGroup(brokerName)); - + BrokerMemberGroup brokerMemberGroup = buildBrokerMemberGroup(brokerName); + if (null != brokerMemberGroup) { + result.setBody(brokerMemberGroup.encode()); + } final ElectMasterEvent event = new ElectMasterEvent(brokerName, candidate); result.addEvent(event); return true;