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