Robbie Gemmell commented on PROTON-474:

JMSExpiration is annoying. Since the ttl field of the Header is mutable (where 
intermediaries should reduce it) and creation-time is an immutable field of the 
Properties, using creation-time + ttl as may give a JMSExpiration value earlier 
than intended.

For the JMS Mapping currently being worked on in the OASIS AMQP Bindings & 
Mapping TC, the mapping for JMSExpiration is currently such that:
- Clients will set both the absolute-expiry-time (used for the JMSExpiration 
value locally) and ttl fields on outbound messages if TTL is specified for the 
send/producer, so that receiving intermediaries can use which of the fields 
they like.
- Messages arriving at the client map JMSExpiration from the immutable 
absolute-expiry-time if it set, or alternatively use current time + ttl header 
if that is set instead. The latter handles the case where creation-time wasnt 
specified, but also has potential to be fuzzy (this time, later than the 
desired expiration if any intermediaries havent adjusted the ttl header).

> Incorrect mapping of TTL to JMSExpiration in JMS InboundTransformer
> -------------------------------------------------------------------
>                 Key: PROTON-474
>                 URL: https://issues.apache.org/jira/browse/PROTON-474
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-j
>    Affects Versions: 0.5
>            Reporter: Timothy Bish
>             Fix For: 0.7
>         Attachments: JMSExpiration-patch.txt, PROTON-474.patch
> The inbound message transformation of AMQP message to JMS message incorrectly 
> sets the JMSExpiration to message TTL which is defined in milliseconds while 
> the JMSExpiration value is a sum of the Message Timestamp and the producers 
> TTL.  The transformation should probably map the message creation time + the 
> TTL to the setJMSExpiration method.  

This message was sent by Atlassian JIRA

Reply via email to