[
https://issues.apache.org/jira/browse/QPID-5057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13740828#comment-13740828
]
Robbie Gemmell commented on QPID-5057:
--------------------------------------
{quote}
I checked neither expiration or timestamp is mentioned in consumers in Java
client, hence no reverse conversion is required to be added to the patch.
{quote}
There is a getJMSTimestamp method to match the setter, which would presumably
need updated to handle the suggested change. However, I do tend to agree with
Gordon that this doesn't seem particularly worth changing unless there is a
larger issue driving it, particularly as we almost certainly don't have to
worry about interoperability with 0-10 implementations from other providers.
Either way, as mentioned before the 0-9-1 (and 0-8/0-9) specification does not
actually specify the units to be in seconds, so I beleive we should leave the
non-0-10 section of the client unchanged.
> 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: QPID-5057.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]