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