You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Grzegorz Kochański (Jira)" <ji...@apache.org> on 2024/03/13 11:52:00 UTC
[jira] [Updated] (AMQ-9452) StatisticsPlugin - field firstMessageTimestamp is not produced for AuthorizationDestinationFilter
[ 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)