[
https://issues.apache.org/jira/browse/AMQ-4468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Erik reopened AMQ-4468:
-----------------------
Issue not resolved. The code change fixed the issue where a stomp "timestamp"
header was overwritten. However, the TimeStampPlugin does not work as expected.
I sent a message to a queue to test the plugin. The message was not delivered
to the queue; i.e. probably delivered to the DLQ. Details:
Expected Result: The message should be sitting in the queue. There were no
consumers. The TimeStampPlugin was enabled. Although the message timestamp and
expire UTCs where 1 day in the past, the plugin should have used the difference
between the expires and timestamp UTCs to rewrite a new expires and timestamp
using the Activemq server local time. The rewrite did not occur.
Activemq Server Time: 2013-05-07 20:27:51,995
Message timestamp header: 2013-05-06T20:27:51-07:00 (1 day earlier than
Activemq time)
Message expire header: 2013-05-06T22:27:51-07:00 (2 hours ahead of timestamp,
still less than Activemq UTC time)
Using activemq binary snapshot:
apache-activemq-5.9-20130507.083009-49-bin.tar.gz
Here is the stomp.log:
2013-05-07 20:27:51,995 [127.0.0.1:43950] TRACE StompIO
- Received:
SEND
b_expires:2013-05-06T22:27:51-07:00
JMSTimestamp:1367897271000
destination:/queue/trinity.test_send
b_timestamp:2013-05-06T20:27:51-07:00
timestamp:1367897271000
expires:1367904471000
json:1
content-length:2
b_ct:50
50
> TimeStampPlugin doesn't work with Stomp
> ---------------------------------------
>
> Key: AMQ-4468
> URL: https://issues.apache.org/jira/browse/AMQ-4468
> Project: ActiveMQ
> Issue Type: Bug
> Components: stomp
> Affects Versions: 5.8.0
> Environment: Ubuntu 12.04.1 LTS Precise, OpenJDK Runtime Environment
> (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.04.1)
> Reporter: Erik
> Assignee: Timothy Bish
> Labels: JMSExpiration, JMSExpires, JMSTimestamp,
> TimeStampPlugin, activemq, disableTimeStampsByDefault, expires, stomp,
> timestamp
> Fix For: 5.9.0
>
>
> Stomp producers cannot set the JMSTimestamp or timestamp header. Activemq
> always adds a timestamp header and overrides a set value. Therefore, the
> expires header cannot be recalculated according to Activemq time according to
> the description for TimeStampPlugin. TimeStampPlugin works for JMS producers
> because the JMSExpiration UTC can be adjusted up/down according to the
> difference between JMSTimestamp and Activemq UTC.
> Example:
> ActiveMQ time is 2pm UTC
> Stomp producer time is 1:03pm UTC.
> Stomp expires time is 1:03pm + 15 minutes: 1:18pm UTC.
> ActiveMQ will throw this message away with TimeStampPlugin enabled.
> ActiveMQ will deliver this message for a JMSProducer.
> Recommendation:
> 1)
> ActiveMQ should allow Stomp producers to set a timestamp or JMSTimestamp
> header.
> if( Stomp Message Timestamp Header ) {
> use header
> }
> else {
> add timestamp header
> }
> 2)
> Add the disableTimeStampsByDefault=true feature to the stomp protocol URI.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira