diff --git a/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java b/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java index e3a989fb18..068187e401 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/controller/ReplicasManager.java @@ -545,6 +545,7 @@ public class ReplicasManager { private boolean registerBrokerToController() { try { RegisterBrokerToControllerResponseHeader response = this.brokerOuterAPI.registerBrokerToController(brokerConfig.getBrokerClusterName(), brokerConfig.getBrokerName(), brokerControllerId, brokerAddress, controllerLeaderAddress); + if (response == null) return false; final Long masterBrokerId = response.getMasterBrokerId(); final String masterAddress = response.getMasterAddress(); if (masterBrokerId == null) { diff --git a/broker/src/test/java/org/apache/rocketmq/broker/controller/ReplicasManagerRegisterTest.java b/broker/src/test/java/org/apache/rocketmq/broker/controller/ReplicasManagerRegisterTest.java index 036c7fd86f..016227fcc3 100644 --- a/broker/src/test/java/org/apache/rocketmq/broker/controller/ReplicasManagerRegisterTest.java +++ b/broker/src/test/java/org/apache/rocketmq/broker/controller/ReplicasManagerRegisterTest.java @@ -56,8 +56,9 @@ import static org.mockito.Mockito.when; @PrepareForTest(ReplicasManager.class) public class ReplicasManagerRegisterTest { - public static final String STORE_BASE_PATH = System.getProperty("user.home") + File.separator + "BrokerControllerRegisterTest" + File.separator + - UUID.randomUUID().toString().replace("-", ""); + public static final String STORE_BASE_PATH = System.getProperty("java.io.tmpdir") + File.separator + "ReplicasManagerRegisterTest"; + + public static final String STORE_PATH = STORE_BASE_PATH + File.separator + UUID.randomUUID(); public static final String BROKER_NAME = "default-broker"; @@ -82,7 +83,7 @@ public class ReplicasManagerRegisterTest { private MessageStoreConfig buildMessageStoreConfig(int id) { MessageStoreConfig config = new MessageStoreConfig(); - config.setStorePathRootDir(STORE_BASE_PATH + File.separator + id); + config.setStorePathRootDir(STORE_PATH + File.separator + id); config.setStorePathCommitLog(config.getStorePathRootDir() + File.separator + "commitLog"); config.setStorePathEpochFile(config.getStorePathRootDir() + File.separator + "epochFileCache"); config.setStorePathBrokerIdentity(config.getStorePathRootDir() + File.separator + "brokerIdentity"); @@ -99,6 +100,7 @@ public class ReplicasManagerRegisterTest { @Before public void setUp() throws Exception { + UtilAll.deleteFile(new File(STORE_BASE_PATH)); this.mockedBrokerController = Mockito.mock(BrokerController.class); this.mockedMessageStore = Mockito.mock(DefaultMessageStore.class); this.mockedBrokerOuterAPI = Mockito.mock(BrokerOuterAPI.class); @@ -332,8 +334,7 @@ public class ReplicasManagerRegisterTest { @After public void clear() { - File file = new File(STORE_BASE_PATH); - UtilAll.deleteFile(file); + UtilAll.deleteFile(new File(STORE_BASE_PATH)); } diff --git a/broker/src/test/java/org/apache/rocketmq/broker/controller/ReplicasManagerTest.java b/broker/src/test/java/org/apache/rocketmq/broker/controller/ReplicasManagerTest.java index bc5dd560b8..706f917a27 100644 --- a/broker/src/test/java/org/apache/rocketmq/broker/controller/ReplicasManagerTest.java +++ b/broker/src/test/java/org/apache/rocketmq/broker/controller/ReplicasManagerTest.java @@ -18,6 +18,7 @@ package org.apache.rocketmq.broker.controller; import java.io.File; +import java.util.UUID; import java.util.concurrent.TimeUnit; import org.apache.rocketmq.broker.BrokerController; @@ -25,6 +26,7 @@ import org.apache.rocketmq.broker.out.BrokerOuterAPI; import org.apache.rocketmq.broker.slave.SlaveSynchronize; import org.apache.rocketmq.common.BrokerConfig; import org.apache.rocketmq.common.Pair; +import org.apache.rocketmq.common.UtilAll; import org.apache.rocketmq.remoting.protocol.body.SyncStateSet; import org.apache.rocketmq.remoting.protocol.header.controller.GetMetaDataResponseHeader; import org.apache.rocketmq.remoting.protocol.header.controller.GetReplicaInfoResponseHeader; @@ -51,6 +53,10 @@ import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class ReplicasManagerTest { + public static final String STORE_BASE_PATH = System.getProperty("java.io.tmpdir") + File.separator + "ReplicasManagerTest"; + + public static final String STORE_PATH = STORE_BASE_PATH + File.separator + UUID.randomUUID(); + @Mock private BrokerController brokerController; @@ -111,12 +117,10 @@ public class ReplicasManagerTest { @Before public void before() throws Exception { + UtilAll.deleteFile(new File(STORE_BASE_PATH)); autoSwitchHAService = new AutoSwitchHAService(); messageStoreConfig = new MessageStoreConfig(); - File metadataFile = new File(messageStoreConfig.getStorePathBrokerIdentity()); - File tempMetadataFile = new File(messageStoreConfig.getStorePathBrokerIdentity() + "-temp"); - metadataFile.deleteOnExit(); - tempMetadataFile.deleteOnExit(); + messageStoreConfig.setStorePathRootDir(STORE_PATH); brokerConfig = new BrokerConfig(); slaveSynchronize = new SlaveSynchronize(brokerController); getMetaDataResponseHeader = new GetMetaDataResponseHeader(GROUP, LEADER_ID, OLD_MASTER_ADDRESS, IS_LEADER, PEERS); @@ -161,10 +165,7 @@ public class ReplicasManagerTest { public void after() { replicasManager.shutdown(); brokerController.shutdown(); - File metadataFile = new File(messageStoreConfig.getStorePathBrokerIdentity()); - File tempMetadataFile = new File(messageStoreConfig.getStorePathBrokerIdentity() + "-temp"); - metadataFile.deleteOnExit(); - tempMetadataFile.deleteOnExit(); + UtilAll.deleteFile(new File(STORE_BASE_PATH)); } @Test diff --git a/controller/src/test/java/org/apache/rocketmq/controller/impl/controller/ControllerManagerTest.java b/controller/src/test/java/org/apache/rocketmq/controller/impl/controller/ControllerManagerTest.java index cfe4466598..09f269dd7a 100644 --- a/controller/src/test/java/org/apache/rocketmq/controller/impl/controller/ControllerManagerTest.java +++ b/controller/src/test/java/org/apache/rocketmq/controller/impl/controller/ControllerManagerTest.java @@ -24,8 +24,8 @@ import java.util.UUID; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.common.ControllerConfig; +import org.apache.rocketmq.common.UtilAll; import org.apache.rocketmq.controller.ControllerManager; import org.apache.rocketmq.controller.impl.DLedgerController; import org.apache.rocketmq.remoting.RemotingClient; @@ -57,16 +57,17 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; public class ControllerManagerTest { - private List baseDirs; + + public static final String STORE_BASE_PATH = System.getProperty("java.io.tmpdir") + File.separator + "ControllerManagerTest"; + + public static final String STORE_PATH = STORE_BASE_PATH + File.separator + UUID.randomUUID(); + private List controllers; private NettyRemotingClient remotingClient; private NettyRemotingClient remotingClient1; public ControllerManager launchManager(final String group, final String peers, final String selfId) { - String tmpdir = System.getProperty("java.io.tmpdir"); - final String path = (StringUtils.endsWith(tmpdir, File.separator) ? tmpdir : tmpdir + File.separator) + group + File.separator + selfId; - baseDirs.add(path); - + final String path = STORE_PATH + File.separator + group + File.separator + selfId; final ControllerConfig config = new ControllerConfig(); config.setControllerDLegerGroup(group); config.setControllerDLegerPeers(peers); @@ -87,7 +88,7 @@ public class ControllerManagerTest { @Before public void startup() { - this.baseDirs = new ArrayList<>(); + UtilAll.deleteFile(new File(STORE_BASE_PATH)); this.controllers = new ArrayList<>(); this.remotingClient = new NettyRemotingClient(new NettyClientConfig()); this.remotingClient.start(); @@ -246,9 +247,7 @@ public class ControllerManagerTest { for (ControllerManager controller : this.controllers) { controller.shutdown(); } - for (String dir : this.baseDirs) { - new File(dir).delete(); - } + UtilAll.deleteFile(new File(STORE_BASE_PATH)); this.remotingClient.shutdown(); this.remotingClient1.shutdown(); }