Pavel Moravec created QPID-5057:
-----------------------------------

             Summary: Delivery properties "expiration" and "timestamp" are in 
milliseconds instead of seconds
                 Key: QPID-5057
                 URL: https://issues.apache.org/jira/browse/QPID-5057
             Project: Qpid
          Issue Type: Bug
          Components: Java Client
    Affects Versions: 0.22
            Reporter: Pavel Moravec
            Priority: Minor


Per AMQP 0.10 specification, message delivery properties  "expiration" and 
"timestamp" are of type datetime, that is 64 bit POSIX time_t format, i.e. 
"seconds since Epoch".

But Java client implementation of both 0.8 and 0.10 protocol versions encodes 
the properties in milliseconds. See e.g. 
org/apache/qpid/client/BasicMessageProducer_0_10.java:

        long currentTime = 0;
        if (timeToLive > 0 || !isDisableTimestamps())
        {
            currentTime = System.currentTimeMillis();
        }

        if (timeToLive > 0)
        {
            deliveryProp.setTtl(timeToLive);
            message.setJMSExpiration(currentTime + timeToLive);
        }

        if (!isDisableTimestamps())
        {

            deliveryProp.setTimestamp(currentTime);
            message.setJMSTimestamp(currentTime);
        }


I.e. there should be "currentTime = System.currentTimeMillis()/1000;", rather.

The same is in 0.8 client as well (while AMQP 0.8 specification does not know 
either of the two delivery properties).

I could propose a trivial patch for the 0.8 and 0.10 client, but I am not sure 
how this affects:
- AMQP 1.0 implementation I am not familiar with
- (Java only?) broker or other clients utilizing the properties


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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to