[ 
https://issues.apache.org/jira/browse/AMQ-9452?focusedWorklogId=910098&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-910098
 ]

ASF GitHub Bot logged work on AMQ-9452:
---------------------------------------

                Author: ASF GitHub Bot
            Created on: 15/Mar/24 12:14
            Start Date: 15/Mar/24 12:14
    Worklog Time Spent: 10m 
      Work Description: ggkochanski commented on PR #1174:
URL: https://github.com/apache/activemq/pull/1174#issuecomment-1999540269

   @mattrpav I've added changes in BrokerStatisticsPluginTest which proves the 
fix:
   1. additional plugin, which just proxes Destination with DestinationFilter:
   ```
           //AMQ-9452: proxy destinations with DestinationFilter
           plugins[0] = new BrokerPluginSupport() {
               @Override
               public Set<Destination> getDestinations(ActiveMQDestination 
destination) {
                   return 
super.getDestinations(destination).stream().map(DestinationFilter::new).collect(Collectors.toSet());
               }
           };
   ```
   2. additional assert in test testDestinationStatsWithFirstMessageTimestamp, 
which proves statistic field firstMessageTimestamp is set by StatisticsBroker:
   `        assertTrue(reply.getLong("firstMessageTimestamp") > 0);`
   




Issue Time Tracking
-------------------

    Worklog Id:     (was: 910098)
    Time Spent: 20m  (was: 10m)

> StatisticsPlugin - field firstMessageTimestamp is not produced for 
> AuthorizationDestinationFilter
> -------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-9452
>                 URL: https://issues.apache.org/jira/browse/AMQ-9452
>             Project: ActiveMQ Classic
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.18.3
>            Reporter: Grzegorz Kochański
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> {{StatisticsBroker}} does not send field {{firstMessageTimestamp}} as dest 
> may be instance of {{DestinationFilter}} (in my case: 
> {{{}AuthorizationDestinationFilter{}}})
> {code:java}
> if (includeFirstMessageTimestamp) {
>     if (dest instanceof Queue) {
>         ((Queue) dest).doBrowse(tempFirstMessage, 1);
>     }
>     else if (dest instanceof Topic) {
>         ((Topic) dest).doBrowse(tempFirstMessage, 1);
>     }
>     if (!tempFirstMessage.isEmpty()) {
>         Message message = tempFirstMessage.get(0);
>         // NOTICE: Client-side, you may get the broker "now" Timestamp by 
> msg.getJMSTimestamp()
>         // This allows for calculating age.
>         statsMessage.setLong("firstMessageTimestamp", 
> message.getBrokerInTime());
>         tempFirstMessage.clear();
>     } {code}
>  
> It appears that {{BaseDestination}} may be unwinded:
> {code:java}
> //unwind BaseDestination
> while (dest instanceof DestinationFilter) {
>     dest = ((DestinationFilter) dest).getNext();
> }
>  {code}
>  
>  
> related to feature: 
> https://github.com/apache/activemq/commit/9167a79b79e4c121cfe0a5b82456f52bf3ecc3c7



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to