[ 
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

Reply via email to