From 6d360509c0f35644001bcadf6b42ab3dc7ed6887 Mon Sep 17 00:00:00 2001 From: Evan Date: Sat, 7 Sep 2024 19:59:38 +0800 Subject: [PATCH] fix: 5.x query message detail throw: Failed to query message by Id: xxx (#231) Co-authored-by: yangzengc --- .../service/client/MQAdminExtImpl.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/apache/rocketmq/dashboard/service/client/MQAdminExtImpl.java b/src/main/java/org/apache/rocketmq/dashboard/service/client/MQAdminExtImpl.java index 0281c5c..d9e1577 100644 --- a/src/main/java/org/apache/rocketmq/dashboard/service/client/MQAdminExtImpl.java +++ b/src/main/java/org/apache/rocketmq/dashboard/service/client/MQAdminExtImpl.java @@ -465,15 +465,18 @@ public class MQAdminExtImpl implements MQAdminExt { } catch (Exception e) { } - MQAdminImpl mqAdminImpl = MQAdminInstance.threadLocalMqClientInstance().getMQAdminImpl(); - QueryResult qr = Reflect.on(mqAdminImpl).call("queryMessage", topic, msgId, 32, - MessageClientIDSetter.getNearlyTimeFromID(msgId).getTime() - 1000 * 60 * 60 * 13L, Long.MAX_VALUE, true).get(); - if (qr != null && qr.getMessageList() != null && qr.getMessageList().size() > 0) { - return qr.getMessageList().get(0); + + Set clusterList = MQAdminInstance.threadLocalMQAdminExt().getTopicClusterList(topic); + if (clusterList == null || clusterList.isEmpty()) { + return MQAdminInstance.threadLocalMQAdminExt().queryMessage("", topic, msgId); } - else { - return null; + for (String name : clusterList) { + MessageExt messageExt = MQAdminInstance.threadLocalMQAdminExt().queryMessage(name, topic, msgId); + if (messageExt != null) { + return messageExt; + } } + return null; } @Override