[ 
https://issues.apache.org/jira/browse/QPID-5057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13739842#comment-13739842
 ] 

Gordon Sim commented on QPID-5057:
----------------------------------

The 0-10 spec state that both of those are set by the broker. The c++ broker 
has an option to set the timestamp (doesn't do it by default). It doesn't act 
in any way on anything the clients sends it in those fields. Since both the 
existing 0-10 brokers seem not to mind what the client does, then unless there 
is ome other observable issue, I don't think it's worth making a change just 
for protocol compliance (for 0-10 that is).
                
> 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
>         Attachments: bz995079.patch, SendMsgTimestamp.java
>
>
> 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