This is an automated email from the ASF dual-hosted git repository.
lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new f23fdbe01 Replace findbugs by spotbugs (#4931)
f23fdbe01 is described below
commit f23fdbe016ab4b60c2dd9786016c5f4756b3db54
Author: Aaron Ai <[email protected]>
AuthorDate: Tue Aug 30 17:45:56 2022 +0800
Replace findbugs by spotbugs (#4931)
---
acl/pom.xml | 4 ++
.../org/apache/rocketmq/acl/common/AclUtils.java | 3 +-
broker/pom.xml | 4 ++
.../org/apache/rocketmq/broker/BrokerStartup.java | 2 +-
.../broker/processor/AdminBrokerProcessor.java | 3 +-
.../broker/processor/PopBufferMergeService.java | 3 +-
.../broker/processor/ReplyMessageProcessor.java | 4 +-
.../queue/TransactionalMessageUtil.java | 2 +-
.../org/apache/rocketmq/broker/util/HookUtils.java | 2 +-
client/pom.xml | 4 ++
.../rocketmq/client/common/ThreadLocalIndex.java | 3 +-
.../client/impl/consumer/RebalanceImpl.java | 1 -
.../client/trace/AsyncTraceDispatcher.java | 3 +-
common/pom.xml | 4 ++
.../java/org/apache/rocketmq/common/MixAll.java | 15 +-------
.../consistenthash/ConsistentHashRouter.java | 3 +-
.../common/protocol/header/ExtraInfoUtil.java | 6 +--
.../apache/rocketmq/common/utils/MessageUtils.java | 3 +-
container/pom.xml | 4 ++
.../rocketmq/container/BrokerContainerStartup.java | 4 +-
controller/pom.xml | 4 ++
distribution/pom.xml | 4 ++
example/pom.xml | 4 ++
.../example/batch/SimpleBatchProducer.java | 7 ++--
.../rocketmq/example/batch/SplitBatchProducer.java | 3 +-
.../example/namespace/ProducerWithNamespace.java | 3 +-
.../example/openmessaging/SimpleProducer.java | 8 ++--
.../example/openmessaging/SimplePullConsumer.java | 3 +-
.../rocketmq/example/rpc/ResponseConsumer.java | 3 +-
.../example/schedule/ScheduledMessageProducer.java | 3 +-
.../example/schedule/TimerMessageProducer.java | 3 +-
.../apache/rocketmq/example/simple/AclClient.java | 3 +-
filter/pom.xml | 4 ++
.../rocketmq/filter/parser/SimpleCharStream.java | 10 +++--
logging/pom.xml | 4 ++
.../rocketmq/logging/InternalLoggerFactory.java | 2 +-
.../rocketmq/logging/inner/LoggingBuilder.java | 3 +-
namesrv/pom.xml | 4 ++
openmessaging/pom.xml | 4 ++
pom.xml | 30 ++++++++++++---
proxy/pom.xml | 1 +
.../rocketmq/proxy/config/Configuration.java | 3 +-
.../grpc/v2/common/GrpcClientSettingsManager.java | 3 --
.../proxy/service/route/MessageQueueSelector.java | 11 +++---
remoting/pom.xml | 4 ++
srvutil/pom.xml | 3 ++
store/pom.xml | 4 ++
.../apache/rocketmq/store/DefaultMessageStore.java | 3 +-
.../rocketmq/store/config/MessageStoreConfig.java | 4 +-
.../store/ha/autoswitch/AutoSwitchHAClient.java | 3 +-
.../ha/autoswitch/AutoSwitchHAConnection.java | 3 +-
.../apache/rocketmq/store/timer/TimerMetrics.java | 28 ++++++++++----
style/spotbugs-suppressions.xml | 43 ++++++++++++++++++++++
test/pom.xml | 4 ++
.../test/client/rmq/RMQAsyncSendProducer.java | 25 +++++++------
.../test/client/rmq/RMQNormalProducer.java | 9 +++--
.../test/client/rmq/RMQTransactionalProducer.java | 5 ++-
.../test/clientinterface/AbstractMQProducer.java | 3 +-
.../rocketmq/test/factory/MQMessageFactory.java | 13 ++++---
.../rocketmq/test/factory/MessageFactory.java | 7 ++--
.../rocketmq/test/listener/AbstractListener.java | 2 +-
.../listener/rmq/concurrent/RMQDelayListener.java | 3 +-
.../listener/rmq/concurrent/RMQNormalListener.java | 5 ++-
.../test/listener/rmq/order/RMQOrderListener.java | 5 ++-
.../rocketmq/test/lmq/benchmark/BenchLmqStore.java | 11 ++++--
.../apache/rocketmq/test/schema/SchemaDefiner.java | 8 ++--
.../apache/rocketmq/test/schema/SchemaTools.java | 18 ++++++---
.../rocketmq/test/util/DuplicateMessageInfo.java | 3 +-
.../org/apache/rocketmq/test/util/FileUtil.java | 9 ++++-
.../org/apache/rocketmq/test/util/TestUtil.java | 5 ++-
tools/pom.xml | 4 ++
.../tools/admin/DefaultMQAdminExtImpl.java | 3 +-
.../rocketmq/tools/command/MQAdminStartup.java | 4 +-
.../command/offset/ResetOffsetByTimeCommand.java | 2 +-
.../topic/RemappingStaticTopicSubCommand.java | 7 ++--
.../command/topic/UpdateStaticTopicSubCommand.java | 4 +-
.../rocketmq/tools/monitor/MonitorService.java | 6 +--
77 files changed, 319 insertions(+), 145 deletions(-)
diff --git a/acl/pom.xml b/acl/pom.xml
index c4eac5aac..9df280713 100644
--- a/acl/pom.xml
+++ b/acl/pom.xml
@@ -18,6 +18,10 @@
<artifactId>rocketmq-acl</artifactId>
<name>rocketmq-acl ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
diff --git a/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
b/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
index 69e03523c..f2c1b4082 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/common/AclUtils.java
@@ -19,7 +19,6 @@ package org.apache.rocketmq.acl.common;
import com.alibaba.fastjson.JSONObject;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.FileWriter;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Map;
@@ -256,7 +255,7 @@ public class AclUtils {
public static boolean writeDataObject(String path, Map<String, Object>
dataMap) {
Yaml yaml = new Yaml();
- try (PrintWriter pw = new PrintWriter(new FileWriter(path))) {
+ try (PrintWriter pw = new PrintWriter(path, "UTF-8")) {
String dumpAsMap = yaml.dumpAsMap(dataMap);
pw.print(dumpAsMap);
pw.flush();
diff --git a/broker/pom.xml b/broker/pom.xml
index 077ca82f4..b551266cc 100644
--- a/broker/pom.xml
+++ b/broker/pom.xml
@@ -21,6 +21,10 @@
<artifactId>rocketmq-broker</artifactId>
<name>rocketmq-broker ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
diff --git a/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
b/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
index f5fc038d1..92ace559a 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
@@ -53,7 +53,7 @@ public class BrokerStartup {
public static CommandLine commandLine = null;
public static String configFile = null;
public static InternalLogger log;
- public static SystemConfigFileHelper configFileHelper = new
SystemConfigFileHelper();
+ public static final SystemConfigFileHelper configFileHelper = new
SystemConfigFileHelper();
public static void main(String[] args) {
start(createBrokerController(args));
diff --git
a/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
b/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
index ab9463a96..3af82641a 100644
---
a/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
+++
b/broker/src/main/java/org/apache/rocketmq/broker/processor/AdminBrokerProcessor.java
@@ -22,6 +22,7 @@ import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext;
import java.io.UnsupportedEncodingException;
import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -374,7 +375,7 @@ public class AdminBrokerProcessor implements
NettyRequestProcessor {
groupForbidden.setGroup(group);
groupForbidden.setTopic(topic);
groupForbidden.setReadable(!groupManager.getForbidden(group, topic,
PermName.INDEX_PERM_READ));
- response.setBody(groupForbidden.toJson().getBytes());
+
response.setBody(groupForbidden.toJson().getBytes(StandardCharsets.UTF_8));
return response;
}
diff --git
a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java
b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java
index bb432a851..a8f93c22b 100644
---
a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java
+++
b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopBufferMergeService.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.broker.processor;
import com.alibaba.fastjson.JSON;
+import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -605,7 +606,7 @@ public class PopBufferMergeService extends ServiceThread {
PopCheckPoint point = pointWrapper.getCk();
MessageExtBrokerInner msgInner = new MessageExtBrokerInner();
msgInner.setTopic(popMessageProcessor.reviveTopic);
- msgInner.setBody((pointWrapper.getReviveQueueId() + "-" +
pointWrapper.getReviveQueueOffset()).getBytes());
+ msgInner.setBody((pointWrapper.getReviveQueueId() + "-" +
pointWrapper.getReviveQueueOffset()).getBytes(StandardCharsets.UTF_8));
msgInner.setQueueId(pointWrapper.getReviveQueueId());
msgInner.setTags(PopAckConstants.CK_TAG);
msgInner.setBornTimestamp(System.currentTimeMillis());
diff --git
a/broker/src/main/java/org/apache/rocketmq/broker/processor/ReplyMessageProcessor.java
b/broker/src/main/java/org/apache/rocketmq/broker/processor/ReplyMessageProcessor.java
index 183f64f38..da4d8db1f 100644
---
a/broker/src/main/java/org/apache/rocketmq/broker/processor/ReplyMessageProcessor.java
+++
b/broker/src/main/java/org/apache/rocketmq/broker/processor/ReplyMessageProcessor.java
@@ -301,7 +301,7 @@ public class ReplyMessageProcessor extends
AbstractSendMessageProcessor {
int commercialBaseCount =
brokerController.getBrokerConfig().getCommercialBaseCount();
int wroteSize =
putMessageResult.getAppendMessageResult().getWroteBytes();
- int incValue = (int) Math.ceil(wroteSize /
commercialSizePerMsg) * commercialBaseCount;
+ int incValue = (int) Math.ceil(wroteSize * 1.0 /
commercialSizePerMsg) * commercialBaseCount;
sendMessageContext.setCommercialSendStats(BrokerStatsManager.StatsType.SEND_SUCCESS);
sendMessageContext.setCommercialSendTimes(incValue);
@@ -311,7 +311,7 @@ public class ReplyMessageProcessor extends
AbstractSendMessageProcessor {
} else {
if (hasSendMessageHook()) {
int wroteSize = request.getBody().length;
- int incValue = (int) Math.ceil(wroteSize /
commercialSizePerMsg);
+ int incValue = (int) Math.ceil(wroteSize * 1.0 /
commercialSizePerMsg);
sendMessageContext.setCommercialSendStats(BrokerStatsManager.StatsType.SEND_FAILURE);
sendMessageContext.setCommercialSendTimes(incValue);
diff --git
a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageUtil.java
b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageUtil.java
index 2d6774432..cdb010482 100644
---
a/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageUtil.java
+++
b/broker/src/main/java/org/apache/rocketmq/broker/transaction/queue/TransactionalMessageUtil.java
@@ -24,7 +24,7 @@ import java.nio.charset.StandardCharsets;
public class TransactionalMessageUtil {
public static final String REMOVETAG = "d";
- public static Charset charset = StandardCharsets.UTF_8;
+ public static final Charset charset = StandardCharsets.UTF_8;
public static String buildOpTopic() {
return TopicValidator.RMQ_SYS_TRANS_OP_HALF_TOPIC;
diff --git
a/broker/src/main/java/org/apache/rocketmq/broker/util/HookUtils.java
b/broker/src/main/java/org/apache/rocketmq/broker/util/HookUtils.java
index 298442c45..6a09475f6 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/util/HookUtils.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/util/HookUtils.java
@@ -127,7 +127,7 @@ public class HookUtils {
|| tranType == MessageSysFlag.TRANSACTION_COMMIT_TYPE) {
if (!isRolledTimerMessage(msg)) {
if (checkIfTimerMessage(msg)) {
- if (!MessageStoreConfig.isTimerWheelEnable()) {
+ if
(!brokerController.getMessageStoreConfig().isTimerWheelEnable()) {
//wheel timer is not enabled, reject the message
return new
PutMessageResult(PutMessageStatus.WHEEL_TIMER_NOT_ENABLE, null);
}
diff --git a/client/pom.xml b/client/pom.xml
index 4954db03f..bf57e6275 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-client</artifactId>
<name>rocketmq-client ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
diff --git
a/client/src/main/java/org/apache/rocketmq/client/common/ThreadLocalIndex.java
b/client/src/main/java/org/apache/rocketmq/client/common/ThreadLocalIndex.java
index 41056fac6..b74efd6eb 100644
---
a/client/src/main/java/org/apache/rocketmq/client/common/ThreadLocalIndex.java
+++
b/client/src/main/java/org/apache/rocketmq/client/common/ThreadLocalIndex.java
@@ -27,10 +27,9 @@ public class ThreadLocalIndex {
public int incrementAndGet() {
Integer index = this.threadLocalIndex.get();
if (null == index) {
- index = Math.abs(random.nextInt());
+ index = random.nextInt();
this.threadLocalIndex.set(index);
}
-
this.threadLocalIndex.set(++index);
return Math.abs(index & POSITIVE_MASK);
}
diff --git
a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java
b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java
index dff7efd63..ef763bc99 100644
---
a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java
+++
b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/RebalanceImpl.java
@@ -479,7 +479,6 @@ public abstract class RebalanceImpl {
final boolean isOrder) {
boolean changed = false;
- Map<MessageQueue, MessageQueue> upgradeMqTable = new
HashMap<MessageQueue, MessageQueue>();
// drop process queues no longer belong me
HashMap<MessageQueue, ProcessQueue> removeQueueMap = new
HashMap<MessageQueue, ProcessQueue>(this.processQueueTable.size());
Iterator<Entry<MessageQueue, ProcessQueue>> it =
this.processQueueTable.entrySet().iterator();
diff --git
a/client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java
b/client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java
index 139d7232f..923952734 100644
---
a/client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java
+++
b/client/src/main/java/org/apache/rocketmq/client/trace/AsyncTraceDispatcher.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.client.trace;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -394,7 +395,7 @@ public class AsyncTraceDispatcher implements
TraceDispatcher {
* @param traceTopic the topic which message trace data will send to
*/
private void sendTraceDataByMQ(Set<String> keySet, final String data,
String traceTopic) {
- final Message message = new Message(traceTopic, data.getBytes());
+ final Message message = new Message(traceTopic,
data.getBytes(StandardCharsets.UTF_8));
// Keyset of message trace includes msgId of or original message
message.setKeys(keySet);
try {
diff --git a/common/pom.xml b/common/pom.xml
index fc810f26c..aa7f9c337 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-common</artifactId>
<name>rocketmq-common ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
diff --git a/common/src/main/java/org/apache/rocketmq/common/MixAll.java
b/common/src/main/java/org/apache/rocketmq/common/MixAll.java
index f8eb4a33a..6e9956589 100644
--- a/common/src/main/java/org/apache/rocketmq/common/MixAll.java
+++ b/common/src/main/java/org/apache/rocketmq/common/MixAll.java
@@ -19,13 +19,13 @@ package org.apache.rocketmq.common;
import org.apache.rocketmq.common.annotation.ImportantField;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.help.FAQUrl;
+import org.apache.rocketmq.common.utils.IOTinyUtils;
import org.apache.rocketmq.logging.InternalLogger;
import org.apache.rocketmq.logging.InternalLoggerFactory;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.lang.annotation.Annotation;
@@ -184,18 +184,7 @@ public class MixAll {
if (fileParent != null) {
fileParent.mkdirs();
}
- FileWriter fileWriter = null;
-
- try {
- fileWriter = new FileWriter(file);
- fileWriter.write(str);
- } catch (IOException e) {
- throw e;
- } finally {
- if (fileWriter != null) {
- fileWriter.close();
- }
- }
+ IOTinyUtils.writeStringToFile(file, str, "UTF-8");
}
public static String file2String(final String fileName) throws IOException
{
diff --git
a/common/src/main/java/org/apache/rocketmq/common/consistenthash/ConsistentHashRouter.java
b/common/src/main/java/org/apache/rocketmq/common/consistenthash/ConsistentHashRouter.java
index fca1d877d..33fae11cd 100644
---
a/common/src/main/java/org/apache/rocketmq/common/consistenthash/ConsistentHashRouter.java
+++
b/common/src/main/java/org/apache/rocketmq/common/consistenthash/ConsistentHashRouter.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.common.consistenthash;
+import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Collection;
@@ -122,7 +123,7 @@ public class ConsistentHashRouter<T extends Node> {
@Override
public long hash(String key) {
instance.reset();
- instance.update(key.getBytes());
+ instance.update(key.getBytes(StandardCharsets.UTF_8));
byte[] digest = instance.digest();
long h = 0;
diff --git
a/common/src/main/java/org/apache/rocketmq/common/protocol/header/ExtraInfoUtil.java
b/common/src/main/java/org/apache/rocketmq/common/protocol/header/ExtraInfoUtil.java
index 19f37f6cd..39cbe8b2a 100644
---
a/common/src/main/java/org/apache/rocketmq/common/protocol/header/ExtraInfoUtil.java
+++
b/common/src/main/java/org/apache/rocketmq/common/protocol/header/ExtraInfoUtil.java
@@ -60,7 +60,7 @@ public class ExtraInfoUtil {
if (extraInfoStrs == null || extraInfoStrs.length < 4) {
throw new IllegalArgumentException("getReviveQid fail,
extraInfoStrs length " + (extraInfoStrs == null ? 0 : extraInfoStrs.length));
}
- return Integer.valueOf(extraInfoStrs[3]);
+ return Integer.parseInt(extraInfoStrs[3]);
}
public static String getRealTopic(String[] extraInfoStrs, String topic,
String cid) {
@@ -85,14 +85,14 @@ public class ExtraInfoUtil {
if (extraInfoStrs == null || extraInfoStrs.length < 7) {
throw new IllegalArgumentException("getQueueId fail, extraInfoStrs
length " + (extraInfoStrs == null ? 0 : extraInfoStrs.length));
}
- return Integer.valueOf(extraInfoStrs[6]);
+ return Integer.parseInt(extraInfoStrs[6]);
}
public static long getQueueOffset(String[] extraInfoStrs) {
if (extraInfoStrs == null || extraInfoStrs.length < 8) {
throw new IllegalArgumentException("getQueueOffset fail,
extraInfoStrs length " + (extraInfoStrs == null ? 0 : extraInfoStrs.length));
}
- return Long.valueOf(extraInfoStrs[7]);
+ return Long.parseLong(extraInfoStrs[7]);
}
public static String buildExtraInfo(long ckQueueOffset, long popTime, long
invisibleTime, int reviveQid, String topic, String brokerName, int queueId) {
diff --git
a/common/src/main/java/org/apache/rocketmq/common/utils/MessageUtils.java
b/common/src/main/java/org/apache/rocketmq/common/utils/MessageUtils.java
index a2affc7e9..0e5ac7add 100644
--- a/common/src/main/java/org/apache/rocketmq/common/utils/MessageUtils.java
+++ b/common/src/main/java/org/apache/rocketmq/common/utils/MessageUtils.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.common.utils;
+import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
@@ -27,7 +28,7 @@ import org.apache.rocketmq.common.message.MessageExt;
public class MessageUtils {
public static int getShardingKeyIndex(String shardingKey, int indexSize) {
- return
Math.abs(Hashing.murmur3_32().hashBytes(shardingKey.getBytes()).asInt() %
indexSize);
+ return
Math.abs(Hashing.murmur3_32().hashBytes(shardingKey.getBytes(StandardCharsets.UTF_8)).asInt()
% indexSize);
}
public static int getShardingKeyIndexByMsg(MessageExt msg, int indexSize) {
diff --git a/container/pom.xml b/container/pom.xml
index 105862e17..d62b957ac 100644
--- a/container/pom.xml
+++ b/container/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-container</artifactId>
<name>rocketmq-container ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>org.apache.rocketmq</groupId>
diff --git
a/container/src/main/java/org/apache/rocketmq/container/BrokerContainerStartup.java
b/container/src/main/java/org/apache/rocketmq/container/BrokerContainerStartup.java
index d4e94a698..3d78275a1 100644
---
a/container/src/main/java/org/apache/rocketmq/container/BrokerContainerStartup.java
+++
b/container/src/main/java/org/apache/rocketmq/container/BrokerContainerStartup.java
@@ -59,9 +59,9 @@ public class BrokerContainerStartup {
public static CommandLine commandLine = null;
public static String configFile = null;
public static InternalLogger log;
- public static SystemConfigFileHelper configFileHelper = new
SystemConfigFileHelper();
+ public static final SystemConfigFileHelper configFileHelper = new
SystemConfigFileHelper();
public static String rocketmqHome = null;
- public static JoranConfigurator configurator = new JoranConfigurator();
+ public static final JoranConfigurator configurator = new
JoranConfigurator();
public static void main(String[] args) {
final BrokerContainer brokerContainer =
startBrokerContainer(createBrokerContainer(args));
diff --git a/controller/pom.xml b/controller/pom.xml
index 04dabb0ff..dc0e7a313 100644
--- a/controller/pom.xml
+++ b/controller/pom.xml
@@ -26,6 +26,10 @@
<artifactId>rocketmq-controller</artifactId>
<name>rocketmq-controller ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>io.openmessaging.storage</groupId>
diff --git a/distribution/pom.xml b/distribution/pom.xml
index ce27e43de..4ce8f520a 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -26,6 +26,10 @@
<name>rocketmq-distribution ${project.version}</name>
<packaging>pom</packaging>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<profiles>
<profile>
<id>release-all</id>
diff --git a/example/pom.xml b/example/pom.xml
index 5f9f4ffb7..3849fa00a 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-example</artifactId>
<name>rocketmq-example ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
diff --git
a/example/src/main/java/org/apache/rocketmq/example/batch/SimpleBatchProducer.java
b/example/src/main/java/org/apache/rocketmq/example/batch/SimpleBatchProducer.java
index 30863032e..cf82c2a87 100644
---
a/example/src/main/java/org/apache/rocketmq/example/batch/SimpleBatchProducer.java
+++
b/example/src/main/java/org/apache/rocketmq/example/batch/SimpleBatchProducer.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.example.batch;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
@@ -39,9 +40,9 @@ public class SimpleBatchProducer {
//If you just send messages of no more than 1MiB at a time, it is easy
to use batch
//Messages of the same batch should have: same topic, same
waitStoreMsgOK and no schedule support
List<Message> messages = new ArrayList<>();
- messages.add(new Message(TOPIC, TAG, "OrderID001", "Hello world
0".getBytes()));
- messages.add(new Message(TOPIC, TAG, "OrderID002", "Hello world
1".getBytes()));
- messages.add(new Message(TOPIC, TAG, "OrderID003", "Hello world
2".getBytes()));
+ messages.add(new Message(TOPIC, TAG, "OrderID001", "Hello world
0".getBytes(StandardCharsets.UTF_8)));
+ messages.add(new Message(TOPIC, TAG, "OrderID002", "Hello world
1".getBytes(StandardCharsets.UTF_8)));
+ messages.add(new Message(TOPIC, TAG, "OrderID003", "Hello world
2".getBytes(StandardCharsets.UTF_8)));
SendResult sendResult = producer.send(messages);
System.out.printf("%s", sendResult);
diff --git
a/example/src/main/java/org/apache/rocketmq/example/batch/SplitBatchProducer.java
b/example/src/main/java/org/apache/rocketmq/example/batch/SplitBatchProducer.java
index aca4f1683..d33a5a5bb 100644
---
a/example/src/main/java/org/apache/rocketmq/example/batch/SplitBatchProducer.java
+++
b/example/src/main/java/org/apache/rocketmq/example/batch/SplitBatchProducer.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.example.batch;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -44,7 +45,7 @@ public class SplitBatchProducer {
//large batch
List<Message> messages = new ArrayList<>(MESSAGE_COUNT);
for (int i = 0; i < MESSAGE_COUNT; i++) {
- messages.add(new Message(TOPIC, TAG, "OrderID" + i, ("Hello world
" + i).getBytes()));
+ messages.add(new Message(TOPIC, TAG, "OrderID" + i, ("Hello world
" + i).getBytes(StandardCharsets.UTF_8)));
}
//split the large batch into small ones:
diff --git
a/example/src/main/java/org/apache/rocketmq/example/namespace/ProducerWithNamespace.java
b/example/src/main/java/org/apache/rocketmq/example/namespace/ProducerWithNamespace.java
index 66c7ec096..ccbd6d0de 100644
---
a/example/src/main/java/org/apache/rocketmq/example/namespace/ProducerWithNamespace.java
+++
b/example/src/main/java/org/apache/rocketmq/example/namespace/ProducerWithNamespace.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.example.namespace;
+import java.nio.charset.StandardCharsets;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
@@ -36,7 +37,7 @@ public class ProducerWithNamespace {
producer.setNamesrvAddr(DEFAULT_NAMESRVADDR);
producer.start();
for (int i = 0; i < MESSAGE_COUNT; i++) {
- Message message = new Message(TOPIC, TAG, "Hello
world".getBytes());
+ Message message = new Message(TOPIC, TAG, "Hello
world".getBytes(StandardCharsets.UTF_8));
try {
SendResult result = producer.send(message);
System.out.printf("Topic:%s send success, misId is:%s%n",
message.getTopic(), result.getMsgId());
diff --git
a/example/src/main/java/org/apache/rocketmq/example/openmessaging/SimpleProducer.java
b/example/src/main/java/org/apache/rocketmq/example/openmessaging/SimpleProducer.java
index 803faaa23..ec72aa0dd 100644
---
a/example/src/main/java/org/apache/rocketmq/example/openmessaging/SimpleProducer.java
+++
b/example/src/main/java/org/apache/rocketmq/example/openmessaging/SimpleProducer.java
@@ -22,6 +22,7 @@ import io.openmessaging.MessagingAccessPoint;
import io.openmessaging.OMS;
import io.openmessaging.producer.Producer;
import io.openmessaging.producer.SendResult;
+import java.nio.charset.StandardCharsets;
import java.util.concurrent.CountDownLatch;
public class SimpleProducer {
@@ -43,7 +44,7 @@ public class SimpleProducer {
System.out.printf("Producer startup OK%n");
{
- Message message = producer.createBytesMessage(QUEUE,
"OMS_HELLO_BODY".getBytes());
+ Message message = producer.createBytesMessage(QUEUE,
"OMS_HELLO_BODY".getBytes(StandardCharsets.UTF_8));
SendResult sendResult = producer.send(message);
//final Void aVoid = result.get(3000L);
@@ -52,7 +53,8 @@ public class SimpleProducer {
final CountDownLatch countDownLatch = new CountDownLatch(1);
{
- final Future<SendResult> result =
producer.sendAsync(producer.createBytesMessage(QUEUE,
"OMS_HELLO_BODY".getBytes()));
+ final Future<SendResult> result =
producer.sendAsync(producer.createBytesMessage(QUEUE,
+ "OMS_HELLO_BODY".getBytes(StandardCharsets.UTF_8)));
result.addListener(future -> {
if (future.getThrowable() != null) {
System.out.printf("Send async message Failed, error:
%s%n", future.getThrowable().getMessage());
@@ -64,7 +66,7 @@ public class SimpleProducer {
}
{
- producer.sendOneway(producer.createBytesMessage("OMS_HELLO_TOPIC",
"OMS_HELLO_BODY".getBytes()));
+ producer.sendOneway(producer.createBytesMessage("OMS_HELLO_TOPIC",
"OMS_HELLO_BODY".getBytes(StandardCharsets.UTF_8)));
System.out.printf("Send oneway message OK%n");
}
diff --git
a/example/src/main/java/org/apache/rocketmq/example/openmessaging/SimplePullConsumer.java
b/example/src/main/java/org/apache/rocketmq/example/openmessaging/SimplePullConsumer.java
index 2c0059ab8..9ad69b31b 100644
---
a/example/src/main/java/org/apache/rocketmq/example/openmessaging/SimplePullConsumer.java
+++
b/example/src/main/java/org/apache/rocketmq/example/openmessaging/SimplePullConsumer.java
@@ -23,6 +23,7 @@ import io.openmessaging.OMSBuiltinKeys;
import io.openmessaging.consumer.PullConsumer;
import io.openmessaging.producer.Producer;
import io.openmessaging.producer.SendResult;
+import java.nio.charset.StandardCharsets;
public class SimplePullConsumer {
@@ -48,7 +49,7 @@ public class SimplePullConsumer {
final String queueName = "TopicTest";
producer.startup();
- Message msg = producer.createBytesMessage(queueName, "Hello Open
Messaging".getBytes());
+ Message msg = producer.createBytesMessage(queueName, "Hello Open
Messaging".getBytes(StandardCharsets.UTF_8));
SendResult sendResult = producer.send(msg);
System.out.printf("Send Message OK. MsgId: %s%n",
sendResult.messageId());
producer.shutdown();
diff --git
a/example/src/main/java/org/apache/rocketmq/example/rpc/ResponseConsumer.java
b/example/src/main/java/org/apache/rocketmq/example/rpc/ResponseConsumer.java
index 421297cc3..a1c18ae69 100644
---
a/example/src/main/java/org/apache/rocketmq/example/rpc/ResponseConsumer.java
+++
b/example/src/main/java/org/apache/rocketmq/example/rpc/ResponseConsumer.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.example.rpc;
+import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
@@ -59,7 +60,7 @@ public class ResponseConsumer {
try {
System.out.printf("handle message: %s %n",
msg.toString());
String replyTo = MessageUtil.getReplyToClient(msg);
- byte[] replyContent = "reply message
contents.".getBytes();
+ byte[] replyContent = "reply message
contents.".getBytes(StandardCharsets.UTF_8);
// create reply message with given util, do not create
reply message by yourself
Message replyMessage =
MessageUtil.createReplyMessage(msg, replyContent);
diff --git
a/example/src/main/java/org/apache/rocketmq/example/schedule/ScheduledMessageProducer.java
b/example/src/main/java/org/apache/rocketmq/example/schedule/ScheduledMessageProducer.java
index 994c81e64..aeae492dd 100644
---
a/example/src/main/java/org/apache/rocketmq/example/schedule/ScheduledMessageProducer.java
+++
b/example/src/main/java/org/apache/rocketmq/example/schedule/ScheduledMessageProducer.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.example.schedule;
+import java.nio.charset.StandardCharsets;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
@@ -37,7 +38,7 @@ public class ScheduledMessageProducer {
producer.start();
int totalMessagesToSend = 100;
for (int i = 0; i < totalMessagesToSend; i++) {
- Message message = new Message(TOPIC, ("Hello scheduled message " +
i).getBytes());
+ Message message = new Message(TOPIC, ("Hello scheduled message " +
i).getBytes(StandardCharsets.UTF_8));
// This message will be delivered to consumer 10 seconds later.
message.setDelayTimeLevel(3);
// Send the message
diff --git
a/example/src/main/java/org/apache/rocketmq/example/schedule/TimerMessageProducer.java
b/example/src/main/java/org/apache/rocketmq/example/schedule/TimerMessageProducer.java
index 18a1b61f5..baa8da7c8 100644
---
a/example/src/main/java/org/apache/rocketmq/example/schedule/TimerMessageProducer.java
+++
b/example/src/main/java/org/apache/rocketmq/example/schedule/TimerMessageProducer.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.example.schedule;
+import java.nio.charset.StandardCharsets;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
@@ -37,7 +38,7 @@ public class TimerMessageProducer {
producer.start();
int totalMessagesToSend = 10;
for (int i = 0; i < totalMessagesToSend; i++) {
- Message message = new Message(TOPIC, ("Hello scheduled message " +
i).getBytes());
+ Message message = new Message(TOPIC, ("Hello scheduled message " +
i).getBytes(StandardCharsets.UTF_8));
// This message will be delivered to consumer 10 seconds later.
//message.setDelayTimeSec(10);
// The effect is the same as the above
diff --git
a/example/src/main/java/org/apache/rocketmq/example/simple/AclClient.java
b/example/src/main/java/org/apache/rocketmq/example/simple/AclClient.java
index 0c97cd332..c1f56ec9c 100644
--- a/example/src/main/java/org/apache/rocketmq/example/simple/AclClient.java
+++ b/example/src/main/java/org/apache/rocketmq/example/simple/AclClient.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.example.simple;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -145,7 +146,7 @@ public class AclClient {
return;
for (MessageExt m : msg) {
if (m != null) {
- System.out.printf("msgId : %s body : %s \n\r", m.getMsgId(),
new String(m.getBody()));
+ System.out.printf("msgId : %s body : %s \n\r", m.getMsgId(),
new String(m.getBody(), StandardCharsets.UTF_8));
}
}
}
diff --git a/filter/pom.xml b/filter/pom.xml
index 5c5080f39..6b6791f60 100644
--- a/filter/pom.xml
+++ b/filter/pom.xml
@@ -28,6 +28,10 @@
<artifactId>rocketmq-filter</artifactId>
<name>rocketmq-filter ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
diff --git
a/filter/src/main/java/org/apache/rocketmq/filter/parser/SimpleCharStream.java
b/filter/src/main/java/org/apache/rocketmq/filter/parser/SimpleCharStream.java
index c10250e3b..42626f0f2 100644
---
a/filter/src/main/java/org/apache/rocketmq/filter/parser/SimpleCharStream.java
+++
b/filter/src/main/java/org/apache/rocketmq/filter/parser/SimpleCharStream.java
@@ -19,6 +19,8 @@
/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
package org.apache.rocketmq.filter.parser;
+import java.nio.charset.StandardCharsets;
+
/**
* An implementation of interface CharStream, where the stream is assumed to
* contain only ASCII characters (without unicode processing).
@@ -331,7 +333,7 @@ public class SimpleCharStream {
public SimpleCharStream(java.io.InputStream dstream, String encoding, int
startline,
int startcolumn, int buffersize) throws
java.io.UnsupportedEncodingException {
this(encoding == null ?
- new java.io.InputStreamReader(dstream) :
+ new java.io.InputStreamReader(dstream, StandardCharsets.UTF_8) :
new java.io.InputStreamReader(dstream, encoding), startline,
startcolumn, buffersize);
}
@@ -340,7 +342,7 @@ public class SimpleCharStream {
*/
public SimpleCharStream(java.io.InputStream dstream, int startline,
int startcolumn, int buffersize) {
- this(new java.io.InputStreamReader(dstream), startline, startcolumn,
buffersize);
+ this(new java.io.InputStreamReader(dstream, StandardCharsets.UTF_8),
startline, startcolumn, buffersize);
}
/**
@@ -379,7 +381,7 @@ public class SimpleCharStream {
public void ReInit(java.io.InputStream dstream, String encoding, int
startline,
int startcolumn, int buffersize) throws
java.io.UnsupportedEncodingException {
ReInit(encoding == null ?
- new java.io.InputStreamReader(dstream) :
+ new java.io.InputStreamReader(dstream, StandardCharsets.UTF_8) :
new java.io.InputStreamReader(dstream, encoding), startline,
startcolumn, buffersize);
}
@@ -388,7 +390,7 @@ public class SimpleCharStream {
*/
public void ReInit(java.io.InputStream dstream, int startline,
int startcolumn, int buffersize) {
- ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn,
buffersize);
+ ReInit(new java.io.InputStreamReader(dstream, StandardCharsets.UTF_8),
startline, startcolumn, buffersize);
}
/**
diff --git a/logging/pom.xml b/logging/pom.xml
index 6a1572e72..4df7df5fb 100644
--- a/logging/pom.xml
+++ b/logging/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-logging</artifactId>
<name>rocketmq-logging ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
diff --git
a/logging/src/main/java/org/apache/rocketmq/logging/InternalLoggerFactory.java
b/logging/src/main/java/org/apache/rocketmq/logging/InternalLoggerFactory.java
index e4b57328c..2370a911e 100644
---
a/logging/src/main/java/org/apache/rocketmq/logging/InternalLoggerFactory.java
+++
b/logging/src/main/java/org/apache/rocketmq/logging/InternalLoggerFactory.java
@@ -38,7 +38,7 @@ public abstract class InternalLoggerFactory {
private static String loggerType = null;
- public static ThreadLocal<String> brokerIdentity = new
ThreadLocal<String>();
+ public static final ThreadLocal<String> brokerIdentity = new
ThreadLocal<String>();
private static ConcurrentHashMap<String, InternalLoggerFactory>
loggerFactoryCache = new ConcurrentHashMap<String, InternalLoggerFactory>();
diff --git
a/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingBuilder.java
b/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingBuilder.java
index 7468cd498..996551e77 100644
---
a/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingBuilder.java
+++
b/logging/src/main/java/org/apache/rocketmq/logging/inner/LoggingBuilder.java
@@ -27,6 +27,7 @@ import java.io.InterruptedIOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
+import java.nio.charset.StandardCharsets;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -534,7 +535,7 @@ public class LoggingBuilder {
}
}
if (retval == null) {
- retval = new OutputStreamWriter(os);
+ retval = new OutputStreamWriter(os, StandardCharsets.UTF_8);
}
return retval;
}
diff --git a/namesrv/pom.xml b/namesrv/pom.xml
index e6c96a862..5334204f7 100644
--- a/namesrv/pom.xml
+++ b/namesrv/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-namesrv</artifactId>
<name>rocketmq-namesrv ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
diff --git a/openmessaging/pom.xml b/openmessaging/pom.xml
index 071fede40..2481a6ac1 100644
--- a/openmessaging/pom.xml
+++ b/openmessaging/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-openmessaging</artifactId>
<name>rocketmq-openmessaging ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>io.openmessaging</groupId>
diff --git a/pom.xml b/pom.xml
index 6f53a33cb..25d4d4d1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,6 +91,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <project.root>${basedir}</project.root>
<!-- Maven properties -->
<maven.test.skip>false</maven.test.skip>
@@ -152,8 +153,8 @@
<coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
<jacoco-maven-plugin.version>0.8.5</jacoco-maven-plugin.version>
<maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
- <findbugs-maven-plugin.version>3.0.4</findbugs-maven-plugin.version>
<sonar-maven-plugin.version>3.0.2</sonar-maven-plugin.version>
+ <spotbugs-plugin.version>4.2.2</spotbugs-plugin.version>
<maven-assembly-plugin.version>3.0.0</maven-assembly-plugin.version>
<maven-javadoc-plugin.version>2.10.4</maven-javadoc-plugin.version>
<maven-failsafe-plugin.version>2.19.1</maven-failsafe-plugin.version>
@@ -380,16 +381,33 @@
</excludes>
</configuration>
</plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>findbugs-maven-plugin</artifactId>
- <version>${findbugs-maven-plugin.version}</version>
- </plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar-maven-plugin.version}</version>
</plugin>
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <version>${spotbugs-plugin.version}</version>
+ <executions>
+ <execution>
+ <id>check</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <failOnError>true</failOnError>
+ <fork>false</fork>
+ <spotbugsXmlOutput>true</spotbugsXmlOutput>
+
<excludeFilterFile>${project.root}/style/spotbugs-suppressions.xml</excludeFilterFile>
+ <threshold>High</threshold>
+ <effort>Max</effort>
+ </configuration>
+ </plugin>
</plugins>
<pluginManagement>
diff --git a/proxy/pom.xml b/proxy/pom.xml
index a72f30c82..f8978cc05 100644
--- a/proxy/pom.xml
+++ b/proxy/pom.xml
@@ -33,6 +33,7 @@
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
+ <project.root>${basedir}/..</project.root>
</properties>
<dependencies>
diff --git
a/proxy/src/main/java/org/apache/rocketmq/proxy/config/Configuration.java
b/proxy/src/main/java/org/apache/rocketmq/proxy/config/Configuration.java
index aaba6ef9c..59078c712 100644
--- a/proxy/src/main/java/org/apache/rocketmq/proxy/config/Configuration.java
+++ b/proxy/src/main/java/org/apache/rocketmq/proxy/config/Configuration.java
@@ -23,6 +23,7 @@ import com.google.common.io.CharStreams;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.concurrent.atomic.AtomicReference;
import org.apache.rocketmq.common.constant.LoggerName;
@@ -65,7 +66,7 @@ public class Configuration {
return null;
}
- return new String(Files.readAllBytes(file.toPath()));
+ return new String(Files.readAllBytes(file.toPath()),
StandardCharsets.UTF_8);
}
public ProxyConfig getProxyConfig() {
diff --git
a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcClientSettingsManager.java
b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcClientSettingsManager.java
index 3943b3392..2e6d4f67e 100644
---
a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcClientSettingsManager.java
+++
b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcClientSettingsManager.java
@@ -194,9 +194,6 @@ public class GrpcClientSettingsManager {
settings = mergeSubscriptionData(ctx, settings,
GrpcConverter.getInstance().wrapResourceWithNamespace(settings.getSubscription().getGroup()));
}
- if (settings == null) {
- return null;
- }
return mergeMetric(settings);
}
}
diff --git
a/proxy/src/main/java/org/apache/rocketmq/proxy/service/route/MessageQueueSelector.java
b/proxy/src/main/java/org/apache/rocketmq/proxy/service/route/MessageQueueSelector.java
index cf5314c79..a05eedd50 100644
---
a/proxy/src/main/java/org/apache/rocketmq/proxy/service/route/MessageQueueSelector.java
+++
b/proxy/src/main/java/org/apache/rocketmq/proxy/service/route/MessageQueueSelector.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.proxy.service.route;
import com.google.common.base.MoreObjects;
+import com.google.common.math.IntMath;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -51,9 +52,9 @@ public class MessageQueueSelector {
this.queues.addAll(buildWrite(topicRouteWrapper));
}
buildBrokerActingQueues(topicRouteWrapper.getTopicName(), this.queues);
-
- this.queueIndex = new AtomicInteger(Math.abs(new Random().nextInt()));
- this.brokerIndex = new AtomicInteger(Math.abs(new Random().nextInt()));
+ Random random = new Random();
+ this.queueIndex = new AtomicInteger(random.nextInt());
+ this.brokerIndex = new AtomicInteger(random.nextInt());
}
private static List<AddressableMessageQueue> buildRead(TopicRouteWrapper
topicRoute) {
@@ -172,13 +173,13 @@ public class MessageQueueSelector {
if (brokerActingQueues.isEmpty()) {
return null;
}
- return brokerActingQueues.get(Math.abs(index) %
brokerActingQueues.size());
+ return brokerActingQueues.get(IntMath.mod(index,
brokerActingQueues.size()));
}
if (queues.isEmpty()) {
return null;
}
- return queues.get(Math.abs(index) % queues.size());
+ return queues.get(IntMath.mod(index, queues.size()));
}
public List<AddressableMessageQueue> getQueues() {
diff --git a/remoting/pom.xml b/remoting/pom.xml
index 484fa95f6..f567d84ea 100644
--- a/remoting/pom.xml
+++ b/remoting/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-remoting</artifactId>
<name>rocketmq-remoting ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
diff --git a/srvutil/pom.xml b/srvutil/pom.xml
index a59e00894..99ee96bce 100644
--- a/srvutil/pom.xml
+++ b/srvutil/pom.xml
@@ -27,6 +27,9 @@
<artifactId>rocketmq-srvutil</artifactId>
<name>rocketmq-srvutil ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
<dependencies>
<dependency>
diff --git a/store/pom.xml b/store/pom.xml
index 332a5f51f..03f6aa93d 100644
--- a/store/pom.xml
+++ b/store/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-store</artifactId>
<name>rocketmq-store ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>io.openmessaging.storage</groupId>
diff --git
a/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java
b/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java
index c48d06654..d3e5ef06c 100644
--- a/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java
+++ b/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java
@@ -26,6 +26,7 @@ import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.FileLock;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -327,7 +328,7 @@ public class DefaultMessageStore implements MessageStore {
throw new RuntimeException("Lock failed,MQ already started");
}
- lockFile.getChannel().write(ByteBuffer.wrap("lock".getBytes()));
+
lockFile.getChannel().write(ByteBuffer.wrap("lock".getBytes(StandardCharsets.UTF_8)));
lockFile.getChannel().force(true);
if (this.getMessageStoreConfig().isDuplicationEnable()) {
diff --git
a/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java
b/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java
index 9b69e75d9..1d5b73336 100644
---
a/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java
+++
b/store/src/main/java/org/apache/rocketmq/store/config/MessageStoreConfig.java
@@ -62,7 +62,7 @@ public class MessageStoreConfig {
private boolean timerEnableCheckMetrics = true;
private boolean timerInterceptDelayLevel = false;
private int timerMaxDelaySec = 3600 * 24 * 3;
- private static boolean timerWheelEnable = true;
+ private boolean timerWheelEnable = true;
/**
* 1. Register to broker after (startTime + disappearTimeAfterStart)
@@ -1441,7 +1441,7 @@ public class MessageStoreConfig {
return timerWarmEnable;
}
- public static boolean isTimerWheelEnable() {
+ public boolean isTimerWheelEnable() {
return timerWheelEnable;
}
public void setTimerWheelEnable(boolean timerWheelEnable) {
diff --git
a/store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAClient.java
b/store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAClient.java
index f41c0a81b..53903a1df 100644
---
a/store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAClient.java
+++
b/store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAClient.java
@@ -23,6 +23,7 @@ import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
@@ -268,7 +269,7 @@ public class AutoSwitchHAClient extends ServiceThread
implements HAClient {
// Address length
this.handshakeHeaderBuffer.putInt(this.localAddress == null ? 0 :
this.localAddress.length());
// Slave address
- this.handshakeHeaderBuffer.put(this.localAddress == null ? new byte[0]
: this.localAddress.getBytes());
+ this.handshakeHeaderBuffer.put(this.localAddress == null ? new byte[0]
: this.localAddress.getBytes(StandardCharsets.UTF_8));
this.handshakeHeaderBuffer.flip();
return this.haWriter.write(this.socketChannel,
this.handshakeHeaderBuffer);
diff --git
a/store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAConnection.java
b/store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAConnection.java
index 98fd77891..63e4b6b9e 100644
---
a/store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAConnection.java
+++
b/store/src/main/java/org/apache/rocketmq/store/ha/autoswitch/AutoSwitchHAConnection.java
@@ -22,6 +22,7 @@ import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
+import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.rocketmq.common.EpochEntry;
import org.apache.rocketmq.common.ServiceThread;
@@ -313,7 +314,7 @@ public class AutoSwitchHAConnection implements HAConnection
{
final byte[] addressData = new
byte[addressLength];
byteBufferRead.position(readPosition +
AutoSwitchHAClient.HANDSHAKE_HEADER_SIZE);
byteBufferRead.get(addressData);
- AutoSwitchHAConnection.this.slaveAddress = new
String(addressData);
+ AutoSwitchHAConnection.this.slaveAddress = new
String(addressData, StandardCharsets.UTF_8);
isSlaveSendHandshake = true;
byteBufferRead.position(readSocketPos);
diff --git
a/store/src/main/java/org/apache/rocketmq/store/timer/TimerMetrics.java
b/store/src/main/java/org/apache/rocketmq/store/timer/TimerMetrics.java
index 1d963aea9..b82569b89 100644
--- a/store/src/main/java/org/apache/rocketmq/store/timer/TimerMetrics.java
+++ b/store/src/main/java/org/apache/rocketmq/store/timer/TimerMetrics.java
@@ -19,6 +19,10 @@ package org.apache.rocketmq.store.timer;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.google.common.io.Files;
+import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Paths;
import org.apache.rocketmq.common.ConfigManager;
import org.apache.rocketmq.common.DataVersion;
import org.apache.rocketmq.common.constant.LoggerName;
@@ -86,18 +90,26 @@ public class TimerMetrics extends ConfigManager {
public Metric getDistPair(Integer period) {
Metric pair = timingDistribution.get(period);
- if (null == pair) {
- pair = new Metric();
- timingDistribution.putIfAbsent(period, pair);
+ if (null != pair) {
+ return pair;
+ }
+ pair = new Metric();
+ final Metric previous = timingDistribution.putIfAbsent(period, pair);
+ if (null != previous) {
+ return previous;
}
return pair;
}
public Metric getTopicPair(String topic) {
Metric pair = timingCount.get(topic);
- if (null == pair) {
- pair = new Metric();
- timingCount.putIfAbsent(topic, pair);
+ if (null != pair) {
+ return pair;
+ }
+ pair = new Metric();
+ final Metric previous = timingCount.putIfAbsent(topic, pair);
+ if (null != previous) {
+ return previous;
}
return pair;
}
@@ -110,7 +122,6 @@ public class TimerMetrics extends ConfigManager {
this.timerDist = timerDist;
}
-
public long getTimingCount(String topic) {
Metric pair = timingCount.get(topic);
if (null == pair) {
@@ -226,7 +237,8 @@ public class TimerMetrics extends ConfigManager {
return;
}
}
- bufferedWriter = new BufferedWriter(new FileWriter(tmpFile,
false));
+ bufferedWriter = new BufferedWriter(new OutputStreamWriter(new
FileOutputStream(tmpFile, false),
+ StandardCharsets.UTF_8));
write0(bufferedWriter);
bufferedWriter.flush();
log.debug("Finished writing tmp file: {}", temp);
diff --git a/style/spotbugs-suppressions.xml b/style/spotbugs-suppressions.xml
new file mode 100644
index 000000000..607080cfb
--- /dev/null
+++ b/style/spotbugs-suppressions.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<FindBugsFilter>
+ <Match>
+ <Class name="org.apache.rocketmq.remoting.netty.TlsSystemConfig"/>
+ <Field name="tlsConfigFile"/>
+ <Bug pattern="MS_SHOULD_BE_FINAL"/>
+ </Match>
+ <Match>
+ <Class name="org.apache.rocketmq.remoting.netty.TlsSystemConfig"/>
+ <Field name="tlsMode"/>
+ <Bug pattern="MS_SHOULD_BE_FINAL"/>
+ </Match>
+ <Match>
+ <Class name="org.apache.rocketmq.store.index.IndexFile"/>
+ <Method name="indexKeyHashMethod" />
+ <Bug pattern="RV_ABSOLUTE_VALUE_OF_HASHCODE"/>
+ </Match>
+ <Match>
+ <Class
name="org.apache.rocketmq.broker.transaction.queue.DefaultTransactionalMessageCheckListener"/>
+ <Method name="toMessageExtBrokerInner" />
+ <Bug pattern="INT_BAD_REM_BY_1"/>
+ </Match>
+ <Match>
+ <Class
name="org.apache.rocketmq.tools.command.cluster.ClusterListSubCommand"/>
+ <Method name="execute" />
+ <Bug pattern="IL_INFINITE_LOOP"/>
+ </Match>
+</FindBugsFilter>
diff --git a/test/pom.xml b/test/pom.xml
index 2e5863775..bb6d28c06 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-test</artifactId>
<name>rocketmq-test ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>log4j</groupId>
diff --git
a/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQAsyncSendProducer.java
b/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQAsyncSendProducer.java
index 9907cac80..d28a5fd3a 100644
---
a/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQAsyncSendProducer.java
+++
b/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQAsyncSendProducer.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.client.rmq;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -108,7 +109,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
Message metaqMsg = (Message) msg;
try {
producer.send(metaqMsg, sendCallback);
- msgBodys.addData(new String(metaqMsg.getBody()));
+ msgBodys.addData(new String(metaqMsg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
} catch (Exception e) {
e.printStackTrace();
@@ -119,7 +120,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
this.msgSize = msgSize;
for (int i = 0; i < msgSize; i++) {
- Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes());
+ Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8));
this.asyncSend(msg);
}
}
@@ -128,7 +129,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
Message metaqMsg = (Message) msg;
try {
producer.send(metaqMsg, selector, arg, sendCallback);
- msgBodys.addData(new String(metaqMsg.getBody()));
+ msgBodys.addData(new String(metaqMsg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
} catch (Exception e) {
e.printStackTrace();
@@ -138,7 +139,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
public void asyncSend(int msgSize, MessageQueueSelector selector) {
this.msgSize = msgSize;
for (int i = 0; i < msgSize; i++) {
- Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes());
+ Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8));
this.asyncSend(msg, selector, i);
}
}
@@ -147,7 +148,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
Message metaqMsg = (Message) msg;
try {
producer.send(metaqMsg, mq, sendCallback);
- msgBodys.addData(new String(metaqMsg.getBody()));
+ msgBodys.addData(new String(metaqMsg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
} catch (Exception e) {
e.printStackTrace();
@@ -157,7 +158,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
public void asyncSend(int msgSize, MessageQueue mq) {
this.msgSize = msgSize;
for (int i = 0; i < msgSize; i++) {
- Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes());
+ Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8));
this.asyncSend(msg, mq);
}
}
@@ -178,7 +179,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
Message metaqMsg = (Message) msg;
try {
producer.sendOneway(metaqMsg);
- msgBodys.addData(new String(metaqMsg.getBody()));
+ msgBodys.addData(new String(metaqMsg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
} catch (Exception e) {
e.printStackTrace();
@@ -187,7 +188,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
public void sendOneWay(int msgSize) {
for (int i = 0; i < msgSize; i++) {
- Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes());
+ Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8));
this.sendOneWay(msg);
}
}
@@ -196,7 +197,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
Message metaqMsg = (Message) msg;
try {
producer.sendOneway(metaqMsg, mq);
- msgBodys.addData(new String(metaqMsg.getBody()));
+ msgBodys.addData(new String(metaqMsg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
} catch (Exception e) {
e.printStackTrace();
@@ -205,7 +206,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
public void sendOneWay(int msgSize, MessageQueue mq) {
for (int i = 0; i < msgSize; i++) {
- Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes());
+ Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8));
this.sendOneWay(msg, mq);
}
}
@@ -214,7 +215,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
Message metaqMsg = (Message) msg;
try {
producer.sendOneway(metaqMsg, selector, arg);
- msgBodys.addData(new String(metaqMsg.getBody()));
+ msgBodys.addData(new String(metaqMsg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
} catch (Exception e) {
e.printStackTrace();
@@ -223,7 +224,7 @@ public class RMQAsyncSendProducer extends
AbstractMQProducer {
public void sendOneWay(int msgSize, MessageQueueSelector selector) {
for (int i = 0; i < msgSize; i++) {
- Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes());
+ Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8));
this.sendOneWay(msg, selector, i);
}
}
diff --git
a/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQNormalProducer.java
b/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQNormalProducer.java
index 001db9584..eb8cf44be 100644
---
a/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQNormalProducer.java
+++
b/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQNormalProducer.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.client.rmq;
+import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
@@ -105,9 +106,9 @@ public class RMQNormalProducer extends AbstractMQProducer {
sendResult.setMsgId(metaqResult.getMsgId());
sendResult.setSendResult(metaqResult.getSendStatus().equals(SendStatus.SEND_OK));
sendResult.setBrokerIp(metaqResult.getMessageQueue().getBrokerName());
- msgBodys.addData(new String(message.getBody()));
+ msgBodys.addData(new String(message.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
- originMsgIndex.put(new String(message.getBody()), metaqResult);
+ originMsgIndex.put(new String(message.getBody(),
StandardCharsets.UTF_8), metaqResult);
} catch (Exception e) {
if (isDebug) {
e.printStackTrace();
@@ -151,9 +152,9 @@ public class RMQNormalProducer extends AbstractMQProducer {
sendResult.setMsgId(metaqResult.getMsgId());
sendResult.setSendResult(metaqResult.getSendStatus().equals(SendStatus.SEND_OK));
sendResult.setBrokerIp(metaqResult.getMessageQueue().getBrokerName());
- msgBodys.addData(new String(msg.getBody()));
+ msgBodys.addData(new String(msg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
- originMsgIndex.put(new String(msg.getBody()), metaqResult);
+ originMsgIndex.put(new String(msg.getBody(),
StandardCharsets.UTF_8), metaqResult);
} catch (Exception e) {
if (isDebug) {
e.printStackTrace();
diff --git
a/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQTransactionalProducer.java
b/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQTransactionalProducer.java
index dcc76b2d8..69563e0e1 100644
---
a/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQTransactionalProducer.java
+++
b/test/src/main/java/org/apache/rocketmq/test/client/rmq/RMQTransactionalProducer.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.client.rmq;
+import java.nio.charset.StandardCharsets;
import org.apache.log4j.Logger;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.LocalTransactionState;
@@ -82,10 +83,10 @@ public class RMQTransactionalProducer extends
AbstractMQProducer {
sendResult.setSendResult(true);
sendResult.setBrokerIp(metaqResult.getMessageQueue().getBrokerName());
if (commitMsg) {
- msgBodys.addData(new String(message.getBody()));
+ msgBodys.addData(new String(message.getBody(),
StandardCharsets.UTF_8));
}
originMsgs.addData(msg);
- originMsgIndex.put(new String(message.getBody()), metaqResult);
+ originMsgIndex.put(new String(message.getBody(),
StandardCharsets.UTF_8), metaqResult);
} catch (MQClientException e) {
if (isDebug) {
e.printStackTrace();
diff --git
a/test/src/main/java/org/apache/rocketmq/test/clientinterface/AbstractMQProducer.java
b/test/src/main/java/org/apache/rocketmq/test/clientinterface/AbstractMQProducer.java
index 1e0a19a2b..258000b09 100644
---
a/test/src/main/java/org/apache/rocketmq/test/clientinterface/AbstractMQProducer.java
+++
b/test/src/main/java/org/apache/rocketmq/test/clientinterface/AbstractMQProducer.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.clientinterface;
+import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.List;
import org.apache.rocketmq.common.message.MessageQueue;
@@ -98,7 +99,7 @@ public abstract class AbstractMQProducer extends MQCollector
implements MQProduc
Object objMsg = null;
if (this instanceof RMQNormalProducer) {
org.apache.rocketmq.common.message.Message msg = new
org.apache.rocketmq.common.message.Message(
- topic, (RandomUtil.getStringByUUID() + "." + new
Date()).getBytes());
+ topic, (RandomUtil.getStringByUUID() + "." + new
Date()).getBytes(StandardCharsets.UTF_8));
objMsg = msg;
if (tag != null) {
msg.setTags(tag);
diff --git
a/test/src/main/java/org/apache/rocketmq/test/factory/MQMessageFactory.java
b/test/src/main/java/org/apache/rocketmq/test/factory/MQMessageFactory.java
index f998fcb13..ca472f039 100644
--- a/test/src/main/java/org/apache/rocketmq/test/factory/MQMessageFactory.java
+++ b/test/src/main/java/org/apache/rocketmq/test/factory/MQMessageFactory.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.factory;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -33,7 +34,7 @@ public class MQMessageFactory {
public static List<Object> getRMQMessage(String tag, String topic, int
msgSize) {
List<Object> msgs = new ArrayList<Object>();
for (int i = 0; i < msgSize; i++) {
- msgs.add(new Message(topic, tag,
RandomUtil.getStringByUUID().getBytes()));
+ msgs.add(new Message(topic, tag,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8)));
}
return msgs;
@@ -43,7 +44,7 @@ public class MQMessageFactory {
List<Object> msgs = new ArrayList<Object>();
for (int i = 0; i < msgSize; i++) {
for (String tag : tags) {
- msgs.add(new Message(topic, tag,
RandomUtil.getStringByUUID().getBytes()));
+ msgs.add(new Message(topic, tag,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8)));
}
}
return msgs;
@@ -52,7 +53,7 @@ public class MQMessageFactory {
public static List<Object> getMessageBody(List<Object> msgs) {
List<Object> msgBodys = new ArrayList<Object>();
for (Object msg : msgs) {
- msgBodys.add(new String(((Message) msg).getBody()));
+ msgBodys.add(new String(((Message) msg).getBody(),
StandardCharsets.UTF_8));
}
return msgBodys;
@@ -69,7 +70,7 @@ public class MQMessageFactory {
public static List<Object> getDelayMsg(String topic, int delayLevel, int
msgSize) {
List<Object> msgs = new ArrayList<Object>();
for (int i = 0; i < msgSize; i++) {
- Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes());
+ Message msg = new Message(topic,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8));
msg.setDelayTimeLevel(delayLevel);
msgs.add(msg);
}
@@ -79,7 +80,7 @@ public class MQMessageFactory {
public static List<Object> getKeyMsg(String topic, String key, int
msgSize) {
List<Object> msgs = new ArrayList<Object>();
for (int i = 0; i < msgSize; i++) {
- Message msg = new Message(topic, null, key,
RandomUtil.getStringByUUID().getBytes());
+ Message msg = new Message(topic, null, key,
RandomUtil.getStringByUUID().getBytes(StandardCharsets.UTF_8));
msgs.add(msg);
}
return msgs;
@@ -111,7 +112,7 @@ public class MQMessageFactory {
public static List<Object> getMsg(String topic, int msgSize, String tag) {
List<Object> msgs = new ArrayList<Object>();
while (msgSize > 0) {
- Message msg = new Message(topic, (index++).toString().getBytes());
+ Message msg = new Message(topic,
(index++).toString().getBytes(StandardCharsets.UTF_8));
if (tag != null) {
msg.setTags(tag);
}
diff --git
a/test/src/main/java/org/apache/rocketmq/test/factory/MessageFactory.java
b/test/src/main/java/org/apache/rocketmq/test/factory/MessageFactory.java
index 8f7170004..f5b542873 100644
--- a/test/src/main/java/org/apache/rocketmq/test/factory/MessageFactory.java
+++ b/test/src/main/java/org/apache/rocketmq/test/factory/MessageFactory.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.factory;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -30,13 +31,11 @@ public class MessageFactory {
}
public static Message getStringMessage(String topic, String body) {
- Message msg = new Message(topic, body.getBytes());
- return msg;
+ return new Message(topic, body.getBytes(StandardCharsets.UTF_8));
}
public static Message getStringMessageByTag(String topic, String tags,
String body) {
- Message msg = new Message(topic, tags, body.getBytes());
- return msg;
+ return new Message(topic, tags, body.getBytes(StandardCharsets.UTF_8));
}
public static Message getRandomMessageByTag(String topic, String tags) {
diff --git
a/test/src/main/java/org/apache/rocketmq/test/listener/AbstractListener.java
b/test/src/main/java/org/apache/rocketmq/test/listener/AbstractListener.java
index a186e73fe..dd269392e 100644
--- a/test/src/main/java/org/apache/rocketmq/test/listener/AbstractListener.java
+++ b/test/src/main/java/org/apache/rocketmq/test/listener/AbstractListener.java
@@ -28,7 +28,7 @@ import org.apache.rocketmq.test.clientinterface.MQCollector;
import org.apache.rocketmq.test.util.TestUtil;
public class AbstractListener extends MQCollector implements MessageListener {
- public static Logger logger = Logger.getLogger(AbstractListener.class);
+ public static final Logger logger =
Logger.getLogger(AbstractListener.class);
protected boolean isDebug = true;
protected String listenerName = null;
protected Collection<Object> allSendMsgs = null;
diff --git
a/test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQDelayListener.java
b/test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQDelayListener.java
index ad369288d..78cbb4e90 100644
---
a/test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQDelayListener.java
+++
b/test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQDelayListener.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.listener.rmq.concurrent;
+import java.nio.charset.StandardCharsets;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import
org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
@@ -53,7 +54,7 @@ public class RMQDelayListener extends AbstractListener
implements MessageListene
logger.info(listenerName + ":" + msg);
}
- msgBodys.addData(new String(msg.getBody()));
+ msgBodys.addData(new String(msg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
msgDelayTimes.addData(Math.abs(recvTime - msg.getBornTimestamp()));
}
diff --git
a/test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQNormalListener.java
b/test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQNormalListener.java
index 07de524a4..e49a90af4 100644
---
a/test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQNormalListener.java
+++
b/test/src/main/java/org/apache/rocketmq/test/listener/rmq/concurrent/RMQNormalListener.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.listener.rmq.concurrent;
+import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
@@ -61,10 +62,10 @@ public class RMQNormalListener extends AbstractListener
implements MessageListen
}
}
- msgBodys.addData(new String(msg.getBody()));
+ msgBodys.addData(new String(msg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
if (originMsgIndex != null) {
- originMsgIndex.put(new String(msg.getBody()), msg);
+ originMsgIndex.put(new String(msg.getBody(),
StandardCharsets.UTF_8), msg);
}
}
return consumeStatus;
diff --git
a/test/src/main/java/org/apache/rocketmq/test/listener/rmq/order/RMQOrderListener.java
b/test/src/main/java/org/apache/rocketmq/test/listener/rmq/order/RMQOrderListener.java
index f48386660..b4d5442bf 100644
---
a/test/src/main/java/org/apache/rocketmq/test/listener/rmq/order/RMQOrderListener.java
+++
b/test/src/main/java/org/apache/rocketmq/test/listener/rmq/order/RMQOrderListener.java
@@ -17,6 +17,7 @@
package org.apache.rocketmq.test.listener.rmq.order;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -56,7 +57,7 @@ public class RMQOrderListener extends AbstractListener
implements MessageListene
msgQueue = msgs.get(key);
}
- msgQueue.add(new String(msg.getBody()));
+ msgQueue.add(new String(msg.getBody(), StandardCharsets.UTF_8));
msgs.put(key, msgQueue);
}
@@ -77,7 +78,7 @@ public class RMQOrderListener extends AbstractListener
implements MessageListene
}
putMsg(msg);
- msgBodys.addData(new String(msg.getBody()));
+ msgBodys.addData(new String(msg.getBody(),
StandardCharsets.UTF_8));
originMsgs.addData(msg);
}
diff --git
a/test/src/main/java/org/apache/rocketmq/test/lmq/benchmark/BenchLmqStore.java
b/test/src/main/java/org/apache/rocketmq/test/lmq/benchmark/BenchLmqStore.java
index d9335ebec..df71fb3be 100644
---
a/test/src/main/java/org/apache/rocketmq/test/lmq/benchmark/BenchLmqStore.java
+++
b/test/src/main/java/org/apache/rocketmq/test/lmq/benchmark/BenchLmqStore.java
@@ -16,6 +16,9 @@
*/
package org.apache.rocketmq.test.lmq.benchmark;
+import com.google.common.math.IntMath;
+import com.google.common.math.LongMath;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.DefaultMQPullConsumer;
import org.apache.rocketmq.client.consumer.PullCallback;
@@ -127,9 +130,9 @@ public class BenchLmqStore {
if (enableSub && lmqNum > 0 && StringUtils.isNotBlank(brokerName)) {
for (int i = 0; i < lmqNum; i++) {
long idx = rid.incrementAndGet();
- String queue = LMQ_PREFIX + queuePrefix + idx % lmqNum;
+ String queue = LMQ_PREFIX + queuePrefix + LongMath.mod(idx,
lmqNum);
MessageQueue mq = new MessageQueue(queue, brokerName, 0);
- int queueHash = Math.abs(queue.hashCode()) % consumerThreadNum;
+ int queueHash = IntMath.mod(queue.hashCode(),
consumerThreadNum);
pullEvent.putIfAbsent(queueHash, new ConcurrentHashMap<>());
pullEvent.get(queueHash).put(mq, idx);
}
@@ -142,7 +145,7 @@ public class BenchLmqStore {
for (int j = 0; j < size; j += 10) {
sb.append("hello baby");
}
- byte[] body = sb.toString().getBytes();
+ byte[] body = sb.toString().getBytes(StandardCharsets.UTF_8);
String pubKey = "pub";
ExecutorService sendPool = Executors.newFixedThreadPool(sendThreadNum);
for (int i = 0; i < sendThreadNum; i++) {
@@ -172,7 +175,7 @@ public class BenchLmqStore {
if (enableSub) {
MessageQueue mq = new MessageQueue(queue,
sendResult.getMessageQueue().getBrokerName(),
lmqNum > 0 ? 0 :
sendResult.getMessageQueue().getQueueId());
- int queueHash = Math.abs(queue.hashCode()) %
consumerThreadNum;
+ int queueHash = IntMath.mod(queue.hashCode(),
consumerThreadNum);
pullEvent.putIfAbsent(queueHash, new
ConcurrentHashMap<>());
pullEvent.get(queueHash).put(mq, idx);
}
diff --git
a/test/src/main/java/org/apache/rocketmq/test/schema/SchemaDefiner.java
b/test/src/main/java/org/apache/rocketmq/test/schema/SchemaDefiner.java
index 0180fa8ee..85d267773 100644
--- a/test/src/main/java/org/apache/rocketmq/test/schema/SchemaDefiner.java
+++ b/test/src/main/java/org/apache/rocketmq/test/schema/SchemaDefiner.java
@@ -53,11 +53,11 @@ import org.apache.rocketmq.tools.admin.DefaultMQAdminExt;
import org.reflections.Reflections;
public class SchemaDefiner {
- public static Map<Class<?>, Set<String>> ignoredFields = new HashMap<>();
+ public static final Map<Class<?>, Set<String>> ignoredFields = new
HashMap<>();
//Use name as the key instead of X.class directly. X.class is not equal to
field.getType().
- public static Set<String> fieldClassNames = new HashSet<>();
- public static List<Class<?>> apiClassList = new ArrayList<>();
- public static List<Class<?>> protocolClassList = new ArrayList<>();
+ public static final Set<String> fieldClassNames = new HashSet<>();
+ public static final List<Class<?>> apiClassList = new ArrayList<>();
+ public static final List<Class<?>> protocolClassList = new ArrayList<>();
public static void doLoad() {
{
diff --git
a/test/src/main/java/org/apache/rocketmq/test/schema/SchemaTools.java
b/test/src/main/java/org/apache/rocketmq/test/schema/SchemaTools.java
index 5184afc88..06fcaf4c6 100644
--- a/test/src/main/java/org/apache/rocketmq/test/schema/SchemaTools.java
+++ b/test/src/main/java/org/apache/rocketmq/test/schema/SchemaTools.java
@@ -19,12 +19,16 @@ package org.apache.rocketmq.test.schema;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -201,9 +205,11 @@ public class SchemaTools {
public static void write(Map<String, TreeMap<String, String>> schemaMap,
String base, String label) throws Exception {
for (Map.Entry<String, TreeMap<String, String>> entry :
schemaMap.entrySet()) {
TreeMap<String, String> map = entry.getValue();
- File file = new File(String.format("%s/%s/%s.schema", base, label,
entry.getKey()));
- FileWriter fileWriter = new FileWriter(file);
- fileWriter.write("/*\n" +
+ final String fileName = String.format("%s/%s/%s.schema", base,
label, entry.getKey());
+ File file = new File(fileName);
+ FileOutputStream fileStream = new FileOutputStream(file);
+ Writer writer = new OutputStreamWriter(fileStream,
StandardCharsets.UTF_8);
+ writer.write("/*\n" +
" * Licensed to the Apache Software Foundation (ASF) under one
or more\n" +
" * contributor license agreements. See the NOTICE file
distributed with\n" +
" * this work for additional information regarding copyright
ownership.\n" +
@@ -220,9 +226,9 @@ public class SchemaTools {
" * limitations under the License.\n" +
" */\n\n\n");
for (Map.Entry<String, String> kv: map.entrySet()) {
- fileWriter.append(String.format("%s : %s\n", kv.getKey(),
kv.getValue()));
+ writer.append(String.format("%s : %s\n", kv.getKey(),
kv.getValue()));
}
- fileWriter.close();
+ writer.close();
}
}
@@ -230,7 +236,7 @@ public class SchemaTools {
File dir = new File(String.format("%s/%s", base, label));
Map<String, TreeMap<String, String>> schemaMap = new TreeMap<>();
for (File file: dir.listFiles()) {
- BufferedReader br = new BufferedReader(new InputStreamReader(new
FileInputStream(file)));
+ BufferedReader br = new BufferedReader(new InputStreamReader(new
FileInputStream(file), StandardCharsets.UTF_8));
String line = null;
TreeMap<String, String> kvs = new TreeMap<>();
while ((line = br.readLine()) != null) {
diff --git
a/test/src/main/java/org/apache/rocketmq/test/util/DuplicateMessageInfo.java
b/test/src/main/java/org/apache/rocketmq/test/util/DuplicateMessageInfo.java
index c90c5c9bf..8aa284031 100644
--- a/test/src/main/java/org/apache/rocketmq/test/util/DuplicateMessageInfo.java
+++ b/test/src/main/java/org/apache/rocketmq/test/util/DuplicateMessageInfo.java
@@ -21,6 +21,7 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.LinkedList;
@@ -108,7 +109,7 @@ public class DuplicateMessageInfo<T> {
for (int i = 0; i < msgListSize; i++)
strToWrite += strBQueue.get(i).toString() + "\r\n";
- byteToWrite = strToWrite.getBytes();
+ byteToWrite = strToWrite.getBytes(StandardCharsets.UTF_8);
out.write(byteToWrite);
out.close();
}
diff --git a/test/src/main/java/org/apache/rocketmq/test/util/FileUtil.java
b/test/src/main/java/org/apache/rocketmq/test/util/FileUtil.java
index de1101003..49f986beb 100644
--- a/test/src/main/java/org/apache/rocketmq/test/util/FileUtil.java
+++ b/test/src/main/java/org/apache/rocketmq/test/util/FileUtil.java
@@ -18,8 +18,12 @@
package org.apache.rocketmq.test.util;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.charset.StandardCharsets;
import java.util.Map.Entry;
import java.util.Properties;
@@ -77,9 +81,10 @@ public class FileUtil {
}
private void writeFile(File file, String content, boolean append) {
- FileWriter writer = null;
+ Writer writer = null;
try {
- writer = new FileWriter(file.getAbsoluteFile(), append);
+ FileOutputStream fileStream = new FileOutputStream(file, append);
+ writer = new OutputStreamWriter(fileStream,
StandardCharsets.UTF_8);
writer.write(content);
writer.flush();
} catch (IOException e) {
diff --git a/test/src/main/java/org/apache/rocketmq/test/util/TestUtil.java
b/test/src/main/java/org/apache/rocketmq/test/util/TestUtil.java
index 591b3b7b3..604ee5c87 100644
--- a/test/src/main/java/org/apache/rocketmq/test/util/TestUtil.java
+++ b/test/src/main/java/org/apache/rocketmq/test/util/TestUtil.java
@@ -18,6 +18,7 @@
package org.apache.rocketmq.test.util;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedHashMap;
@@ -94,10 +95,10 @@ public final class TestUtil {
try {
byte[] b = new byte[1024];
int n = System.in.read(b);
- String s = new String(b, 0, n - 1).replace("\r", "").replace("\n",
"");
+ String s = new String(b, 0, n - 1,
StandardCharsets.UTF_8).replace("\r", "").replace("\n", "");
while (!s.equals(keyWord)) {
n = System.in.read(b);
- s = new String(b, 0, n - 1);
+ s = new String(b, 0, n - 1, StandardCharsets.UTF_8);
}
} catch (IOException e) {
e.printStackTrace();
diff --git a/tools/pom.xml b/tools/pom.xml
index 467795d8f..c4ff40cd5 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -27,6 +27,10 @@
<artifactId>rocketmq-tools</artifactId>
<name>rocketmq-tools ${project.version}</name>
+ <properties>
+ <project.root>${basedir}/..</project.root>
+ </properties>
+
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
diff --git
a/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
b/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
index 00ca230a5..ebba9d96a 100644
---
a/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
+++
b/tools/src/main/java/org/apache/rocketmq/tools/admin/DefaultMQAdminExtImpl.java
@@ -529,7 +529,8 @@ public class DefaultMQAdminExtImpl implements MQAdminExt,
MQAdminExtInner {
}
if (result.getOffsetTable().isEmpty()) {
-
AdminToolResult.failure(AdminToolsResultCodeEnum.CONSUMER_NOT_ONLINE, "Not
found the consumer group consume stats, because return offset table is empty,
maybe the consumer not consume any message");
+ return
AdminToolResult.failure(AdminToolsResultCodeEnum.CONSUMER_NOT_ONLINE, "Not
found the "
+ + "consumer group consume stats, because return offset
table is empty, maybe the consumer not consume any message");
}
return AdminToolResult.success(result);
}
diff --git
a/tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java
b/tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java
index c27dce1a2..005004dee 100644
--- a/tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java
+++ b/tools/src/main/java/org/apache/rocketmq/tools/command/MQAdminStartup.java
@@ -105,9 +105,9 @@ import
org.apache.rocketmq.tools.command.topic.UpdateTopicSubCommand;
import org.slf4j.LoggerFactory;
public class MQAdminStartup {
- protected static List<SubCommand> subCommandList = new
ArrayList<SubCommand>();
+ protected static final List<SubCommand> subCommandList = new
ArrayList<SubCommand>();
- private static String rocketmqHome =
System.getProperty(MixAll.ROCKETMQ_HOME_PROPERTY,
+ private static final String rocketmqHome =
System.getProperty(MixAll.ROCKETMQ_HOME_PROPERTY,
System.getenv(MixAll.ROCKETMQ_HOME_ENV));
public static void main(String[] args) {
diff --git
a/tools/src/main/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeCommand.java
b/tools/src/main/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeCommand.java
index eeb95c6e8..f95c7e514 100644
---
a/tools/src/main/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeCommand.java
+++
b/tools/src/main/java/org/apache/rocketmq/tools/command/offset/ResetOffsetByTimeCommand.java
@@ -111,7 +111,7 @@ public class ResetOffsetByTimeCommand implements SubCommand
{
}
int queueId = -1;
if (commandLine.hasOption("q")) {
- queueId = Integer.valueOf(commandLine.getOptionValue('q'));
+ queueId = Integer.parseInt(commandLine.getOptionValue('q'));
}
if (commandLine.hasOption('n')) {
diff --git
a/tools/src/main/java/org/apache/rocketmq/tools/command/topic/RemappingStaticTopicSubCommand.java
b/tools/src/main/java/org/apache/rocketmq/tools/command/topic/RemappingStaticTopicSubCommand.java
index ba4e54e11..a5b82f07b 100644
---
a/tools/src/main/java/org/apache/rocketmq/tools/command/topic/RemappingStaticTopicSubCommand.java
+++
b/tools/src/main/java/org/apache/rocketmq/tools/command/topic/RemappingStaticTopicSubCommand.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.tools.command.topic;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionGroup;
@@ -95,7 +96,8 @@ public class RemappingStaticTopicSubCommand implements
SubCommand {
String mapFileName = commandLine.getOptionValue('f').trim();
String mapData = MixAll.file2String(mapFileName);
- TopicRemappingDetailWrapper wrapper =
TopicRemappingDetailWrapper.decode(mapData.getBytes(),
TopicRemappingDetailWrapper.class);
+ TopicRemappingDetailWrapper wrapper =
TopicRemappingDetailWrapper.decode(mapData.getBytes(StandardCharsets.UTF_8),
+ TopicRemappingDetailWrapper.class);
//double check the config
TopicQueueMappingUtils.checkNameEpochNumConsistence(topic,
wrapper.getBrokerConfigMap());
TopicQueueMappingUtils.checkAndBuildMappingItems(new
ArrayList<>(TopicQueueMappingUtils.getMappingDetailFromConfig(wrapper.getBrokerConfigMap().values())),
false, true);
@@ -132,8 +134,7 @@ public class RemappingStaticTopicSubCommand implements
SubCommand {
defaultMQAdminExt.setInstanceName(Long.toString(System.currentTimeMillis()));
ClientMetadata clientMetadata = new ClientMetadata();
- Map<String, TopicConfigAndQueueMapping> brokerConfigMap = new
HashMap<>();
- Map<Integer, TopicQueueMappingOne> globalIdMap = new HashMap<>();
+ Map<String, TopicConfigAndQueueMapping> brokerConfigMap;
Set<String> targetBrokers = new HashSet<>();
try {
diff --git
a/tools/src/main/java/org/apache/rocketmq/tools/command/topic/UpdateStaticTopicSubCommand.java
b/tools/src/main/java/org/apache/rocketmq/tools/command/topic/UpdateStaticTopicSubCommand.java
index d67b8fbf2..639191add 100644
---
a/tools/src/main/java/org/apache/rocketmq/tools/command/topic/UpdateStaticTopicSubCommand.java
+++
b/tools/src/main/java/org/apache/rocketmq/tools/command/topic/UpdateStaticTopicSubCommand.java
@@ -16,6 +16,7 @@
*/
package org.apache.rocketmq.tools.command.topic;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionGroup;
@@ -97,7 +98,8 @@ public class UpdateStaticTopicSubCommand implements
SubCommand {
String topic = commandLine.getOptionValue('t').trim();
String mapFileName = commandLine.getOptionValue('f').trim();
String mapData = MixAll.file2String(mapFileName);
- TopicRemappingDetailWrapper wrapper =
TopicRemappingDetailWrapper.decode(mapData.getBytes(),
TopicRemappingDetailWrapper.class);
+ TopicRemappingDetailWrapper wrapper =
TopicRemappingDetailWrapper.decode(mapData.getBytes(StandardCharsets.UTF_8),
+ TopicRemappingDetailWrapper.class);
//double check the config
TopicQueueMappingUtils.checkNameEpochNumConsistence(topic,
wrapper.getBrokerConfigMap());
boolean force = false;
diff --git
a/tools/src/main/java/org/apache/rocketmq/tools/monitor/MonitorService.java
b/tools/src/main/java/org/apache/rocketmq/tools/monitor/MonitorService.java
index 94f588da2..150745d17 100644
--- a/tools/src/main/java/org/apache/rocketmq/tools/monitor/MonitorService.java
+++ b/tools/src/main/java/org/apache/rocketmq/tools/monitor/MonitorService.java
@@ -26,6 +26,7 @@ import java.util.TreeMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import org.apache.commons.lang3.RandomUtils;
import org.apache.rocketmq.client.consumer.DefaultMQPullConsumer;
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.PullResult;
@@ -134,9 +135,8 @@ public class MonitorService {
}
private String instanceName() {
- String name =
- System.currentTimeMillis() + new Random().nextInt() +
this.monitorConfig.getNamesrvAddr();
-
+ final int randomInteger = RandomUtils.nextInt(0, Integer.MAX_VALUE);
+ String name = System.currentTimeMillis() + randomInteger +
this.monitorConfig.getNamesrvAddr();
return "MonitorService_" + name.hashCode();
}