summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2015-01-14 21:04:57 +0000
committerRobert Godfrey <rgodfrey@apache.org>2015-01-14 21:04:57 +0000
commit64e2d8c98347ad00624dfa578894e4415c691bb8 (patch)
tree441fd7d42d7e3a50e0081c5d00e6189d202ecbc2 /qpid/java
parent52e0779fdc35b7ce6614f1b16f4328613c837655 (diff)
downloadqpid-python-64e2d8c98347ad00624dfa578894e4415c691bb8.tar.gz
QPID-6313 : [JMS AMQP 1.0 Client] increment redelivery count when recover() is called
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1651826 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java
index b0b31d6e7b..c4638616fa 100644
--- a/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java
+++ b/qpid/java/amqp-1-0-client-jms/src/main/java/org/apache/qpid/amqp_1_0/jms/impl/MessageConsumerImpl.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
+
import javax.jms.Destination;
import javax.jms.ExceptionListener;
import javax.jms.IllegalStateException;
@@ -32,19 +33,20 @@ import javax.jms.InvalidDestinationException;
import javax.jms.InvalidSelectorException;
import javax.jms.JMSException;
import javax.jms.MessageListener;
+
import org.apache.qpid.amqp_1_0.client.AcknowledgeMode;
import org.apache.qpid.amqp_1_0.client.ConnectionErrorException;
import org.apache.qpid.amqp_1_0.client.Message;
import org.apache.qpid.amqp_1_0.client.Receiver;
import org.apache.qpid.amqp_1_0.client.Transaction;
import org.apache.qpid.amqp_1_0.jms.MessageConsumer;
+import org.apache.qpid.amqp_1_0.jms.MessageConsumerException;
import org.apache.qpid.amqp_1_0.jms.Queue;
import org.apache.qpid.amqp_1_0.jms.QueueReceiver;
import org.apache.qpid.amqp_1_0.jms.Session;
import org.apache.qpid.amqp_1_0.jms.TemporaryDestination;
import org.apache.qpid.amqp_1_0.jms.Topic;
import org.apache.qpid.amqp_1_0.jms.TopicSubscriber;
-import org.apache.qpid.amqp_1_0.jms.MessageConsumerException;
import org.apache.qpid.amqp_1_0.type.Binary;
import org.apache.qpid.amqp_1_0.type.Symbol;
import org.apache.qpid.amqp_1_0.type.UnsignedInteger;
@@ -333,10 +335,23 @@ public class MessageConsumerImpl implements MessageConsumer, QueueReceiver, Topi
message.setFromTopic(_isTopicSubscriber);
if(redelivery)
{
+ UnsignedInteger failures = message.getDeliveryFailures();
+
if(!message.getJMSRedelivered())
{
message.setJMSRedelivered(true);
}
+
+ if(failures == null)
+ {
+ message.setDeliveryFailures(UnsignedInteger.ONE);
+ }
+ else
+ {
+ message.setDeliveryFailures(failures.add(UnsignedInteger.ONE));
+ }
+
+
}
return message;