commit | d7102c06510e7bed31c50647c536093df527206c | [log] [tgz] |
---|---|---|
author | Heng Du <duhengforever@apache.org> | Thu Mar 05 17:38:37 2020 +0800 |
committer | GitHub <noreply@github.com> | Thu Mar 05 17:38:37 2020 +0800 |
tree | 7cd6d5ec37bb44efc91c64d70e923c7fa9e97813 | |
parent | c233f65a0c1207d1d4ec94121e0024084ee82c6a [diff] | |
parent | d119204f766260b96906e8fb8c17cef2e1ba7c58 [diff] |
Merge pull request #1822 from RongtongJin/fix_1821 [ISSUE #1821]Fix the issue that MessageClientIDSetter#getIPFromID return wrong pid
diff --git a/common/src/main/java/org/apache/rocketmq/common/message/MessageClientIDSetter.java b/common/src/main/java/org/apache/rocketmq/common/message/MessageClientIDSetter.java index 9d6ec95..041bf6b 100644 --- a/common/src/main/java/org/apache/rocketmq/common/message/MessageClientIDSetter.java +++ b/common/src/main/java/org/apache/rocketmq/common/message/MessageClientIDSetter.java
@@ -104,11 +104,11 @@ return result; } - public static short getPidFromID(String msgID) { + public static int getPidFromID(String msgID) { byte[] bytes = UtilAll.string2bytes(msgID); ByteBuffer wrap = ByteBuffer.wrap(bytes); - wrap.position(bytes.length - 2 - 4 - 4 - 2); - return wrap.getShort(); + int value = wrap.getShort(bytes.length - 2 - 4 - 4 - 2); + return value & 0x0000FFFF; } public static String createUniqID() {
diff --git a/common/src/test/java/org/apache/rocketmq/common/message/MessageClientIDSetterTest.java b/common/src/test/java/org/apache/rocketmq/common/message/MessageClientIDSetterTest.java index 55aa505..6d8c203 100644 --- a/common/src/test/java/org/apache/rocketmq/common/message/MessageClientIDSetterTest.java +++ b/common/src/test/java/org/apache/rocketmq/common/message/MessageClientIDSetterTest.java
@@ -40,7 +40,7 @@ int pid = UtilAll.getPid(); String uniqID = MessageClientIDSetter.createUniqID(); - short pidFromID = MessageClientIDSetter.getPidFromID(uniqID); + int pidFromID = MessageClientIDSetter.getPidFromID(uniqID); assertThat(pid).isEqualTo(pidFromID); }