Github user michaelandrepearce commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/2237#discussion_r209375108
  
    --- Diff: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/QueueControlImpl.java
 ---
    @@ -711,6 +712,32 @@ public long countMessages(final String filterStr) 
throws Exception {
           }
        }
     
    +   @Override
    +   public String countMessagesProperty(final String filter) throws 
Exception {
    +      checkStarted();
    +      clearIO();
    +      try {
    +         try (LinkedListIterator<MessageReference> iterator = 
queue.browserIterator()) {
    +            Map<String, Integer> result = new HashMap<>();
    +            String propertySearch = filter == null ? UNDEFINED : filter;
    +            try {
    +               while (iterator.hasNext()) {
    +                  MessageReference ref = iterator.next();
    +                  String messageProperty = 
ref.getMessage().getStringProperty(propertySearch);
    --- End diff --
    
    You will better calling to get object as then where there maybe properties 
that dont actually get stored in the property map but are actually a top level 
field it would still return for all. And then you can simply call 
Objects.toString on the returned object, this would also then remove the need 
for undefined and would return the java normal string representation for null


---

Reply via email to