This is an automated email from the ASF dual-hosted git repository.
styletang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git
The following commit(s) were added to refs/heads/master by this push:
new 6054c05 [ISSUE #43]Give a tip when no message found with topic + time
query. (#44)
6054c05 is described below
commit 6054c057c85ecfda3a0a35f8fc6f68444585dd94
Author: zhangjidi2016 <[email protected]>
AuthorDate: Wed Nov 17 13:30:33 2021 +0800
[ISSUE #43]Give a tip when no message found with topic + time query. (#44)
Co-authored-by: zhangjidi2016 <[email protected]>
---
.../rocketmq/dashboard/service/impl/MessageServiceImpl.java | 4 ++++
.../dashboard/service/impl/MessageTraceServiceImpl.java | 5 ++---
src/main/resources/static/src/message.js | 4 ++++
src/main/resources/static/view/pages/message.html | 3 +++
.../dashboard/controller/MessageTraceControllerTest.java | 11 +++++++++++
5 files changed, 24 insertions(+), 3 deletions(-)
diff --git
a/src/main/java/org/apache/rocketmq/dashboard/service/impl/MessageServiceImpl.java
b/src/main/java/org/apache/rocketmq/dashboard/service/impl/MessageServiceImpl.java
index 020548e..6c71bc2 100644
---
a/src/main/java/org/apache/rocketmq/dashboard/service/impl/MessageServiceImpl.java
+++
b/src/main/java/org/apache/rocketmq/dashboard/service/impl/MessageServiceImpl.java
@@ -31,6 +31,7 @@ import org.apache.rocketmq.acl.common.SessionCredentials;
import org.apache.rocketmq.client.consumer.DefaultMQPullConsumer;
import org.apache.rocketmq.client.consumer.PullResult;
import org.apache.rocketmq.client.consumer.PullStatus;
+import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.Pair;
import org.apache.rocketmq.common.message.MessageClientIDSetter;
@@ -111,6 +112,9 @@ public class MessageServiceImpl implements MessageService {
}
});
} catch (Exception err) {
+ if (err instanceof MQClientException) {
+ throw new ServiceException(-1, ((MQClientException)
err).getErrorMessage());
+ }
throw Throwables.propagate(err);
}
}
diff --git
a/src/main/java/org/apache/rocketmq/dashboard/service/impl/MessageTraceServiceImpl.java
b/src/main/java/org/apache/rocketmq/dashboard/service/impl/MessageTraceServiceImpl.java
index b3f3dc4..89468cd 100644
---
a/src/main/java/org/apache/rocketmq/dashboard/service/impl/MessageTraceServiceImpl.java
+++
b/src/main/java/org/apache/rocketmq/dashboard/service/impl/MessageTraceServiceImpl.java
@@ -20,8 +20,6 @@ package org.apache.rocketmq.dashboard.service.impl;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
-import com.google.common.base.Throwables;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -35,6 +33,7 @@ import org.apache.rocketmq.common.Pair;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.dashboard.config.RMQConfigure;
+import org.apache.rocketmq.dashboard.exception.ServiceException;
import org.apache.rocketmq.dashboard.model.MessageTraceView;
import org.apache.rocketmq.dashboard.model.trace.ProducerNode;
import org.apache.rocketmq.dashboard.model.trace.MessageTraceGraph;
@@ -82,7 +81,7 @@ public class MessageTraceServiceImpl implements
MessageTraceService {
}
return messageTraceViews;
} catch (Exception err) {
- throw Throwables.propagate(err);
+ throw new ServiceException(-1, String.format("Failed to query
message trace by msgId %s", key));
}
}
diff --git a/src/main/resources/static/src/message.js
b/src/main/resources/static/src/message.js
index af36808..6b54f1c 100644
--- a/src/main/resources/static/src/message.js
+++ b/src/main/resources/static/src/message.js
@@ -58,6 +58,7 @@ module.controller('messageController', ['$scope', 'ngDialog',
'$http', 'Notifica
};
$scope.queryMessagePageByTopic = function () {
+ $("#noMsgTip").css("display", "none");
if ($scope.timepickerEnd < $scope.timepickerBegin) {
Notification.error({message: "endTime is later than beginTime!",
delay: 2000});
return
@@ -80,6 +81,9 @@ module.controller('messageController', ['$scope', 'ngDialog',
'$http', 'Notifica
if (resp.status === 0) {
console.log(resp);
$scope.messageShowList = resp.data.page.content;
+ if ($scope.messageShowList.length == 0){
+ $("#noMsgTip").removeAttr("style");
+ }
if (resp.data.page.first) {
$scope.paginationConf.currentPage = 1;
}
diff --git a/src/main/resources/static/view/pages/message.html
b/src/main/resources/static/view/pages/message.html
index a2bc2b6..a4bb81c 100644
--- a/src/main/resources/static/view/pages/message.html
+++ b/src/main/resources/static/view/pages/message.html
@@ -73,6 +73,9 @@
<th class="text-center">StoreTime</th>
<th class="text-center">Operation</th>
</tr>
+ <tr style="display: none" id="noMsgTip">
+ <td colspan="5" style="text-align:
center">{{'NO_MATCH_RESULT' | translate}}</td>
+ </tr>
<tr ng-repeat="item in messageShowList">
<td
class="text-center">{{item.msgId}}</td>
<td
class="text-center">{{item.properties.TAGS}}</td>
diff --git
a/src/test/java/org/apache/rocketmq/dashboard/controller/MessageTraceControllerTest.java
b/src/test/java/org/apache/rocketmq/dashboard/controller/MessageTraceControllerTest.java
index 49a40f7..e950be7 100644
---
a/src/test/java/org/apache/rocketmq/dashboard/controller/MessageTraceControllerTest.java
+++
b/src/test/java/org/apache/rocketmq/dashboard/controller/MessageTraceControllerTest.java
@@ -62,6 +62,7 @@ public class MessageTraceControllerTest extends
BaseControllerTest {
messageList.add(messageExt);
QueryResult queryResult = new QueryResult(System.currentTimeMillis(),
messageList);
when(mqAdminExt.queryMessage(anyString(), anyString(), anyInt(),
anyLong(), anyLong()))
+ .thenThrow(new RuntimeException())
.thenReturn(queryResult);
}
@@ -100,6 +101,11 @@ public class MessageTraceControllerTest extends
BaseControllerTest {
final String url = "/messageTrace/viewMessageTraceDetail.query";
requestBuilder = MockMvcRequestBuilders.get(url);
requestBuilder.param("msgId", "0A9A003F00002A9F0000000000000319");
+ // query message trace exception
+ perform = mockMvc.perform(requestBuilder);
+ performErrorExpect(perform);
+
+ // query message trace success
perform = mockMvc.perform(requestBuilder);
perform.andExpect(status().isOk())
.andExpect(jsonPath("$.data", hasSize(4)))
@@ -114,6 +120,11 @@ public class MessageTraceControllerTest extends
BaseControllerTest {
final String url = "/messageTrace/viewMessageTraceGraph.query";
requestBuilder = MockMvcRequestBuilders.get(url);
requestBuilder.param("msgId", "0A9A003F00002A9F0000000000000319");
+ // query message trace exception
+ perform = mockMvc.perform(requestBuilder);
+ performErrorExpect(perform);
+
+ // query message trace success
perform = mockMvc.perform(requestBuilder);
perform.andExpect(status().isOk())
.andExpect(jsonPath("$.data").isMap())