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())

Reply via email to