[
https://issues.apache.org/jira/browse/AMQ-9452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Grzegorz Kochański updated AMQ-9452:
------------------------------------
Description:
{{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
was:
{{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 easily unwinded:
{code:java}
//unwind BaseDestination
while (dest instanceof DestinationFilter) {
dest = ((DestinationFilter) dest).getNext();
}
{code}
> 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
>
> {{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)