Updated Branches:
  refs/heads/trunk e0e14e087 -> 875822de5

Fixes AMQ-5002: Support receiving AMQP messages which do not have the timestamp 
set but the expiration is set.


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/875822de
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/875822de
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/875822de

Branch: refs/heads/trunk
Commit: 875822de5172607496e7bd219a177213df92b7cd
Parents: e0e14e0
Author: Hiram Chirino <[email protected]>
Authored: Thu Jan 30 09:51:41 2014 -0500
Committer: Hiram Chirino <[email protected]>
Committed: Thu Jan 30 09:51:53 2014 -0500

----------------------------------------------------------------------
 .../activemq/transport/amqp/AmqpProtocolConverter.java    | 10 ++++++++++
 1 file changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/875822de/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
----------------------------------------------------------------------
diff --git 
a/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
 
b/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
index 1e43cba..62a05b9 100644
--- 
a/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
+++ 
b/activemq-amqp/src/main/java/org/apache/activemq/transport/amqp/AmqpProtocolConverter.java
@@ -566,6 +566,16 @@ class AmqpProtocolConverter implements 
IAmqpProtocolConverter {
                 message.setTransactionId(new LocalTransactionId(connectionId, 
txid));
             }
 
+            // Lets handle the case where the expiration was set, but the 
timestamp
+            // was not set by the client.  Lets assign the timestamp now, and 
adjust the
+            // expiration.
+            if( message.getExpiration()!= 0 ) {
+                if( message.getTimestamp()==0 ) {
+                    message.setTimestamp(System.currentTimeMillis());
+                    
message.setExpiration(message.getTimestamp()+message.getExpiration());
+                }
+            }
+
             message.onSend();
             sendToActiveMQ(message, new ResponseHandler() {
                 @Override

Reply via email to