CAMEL-6767: rabbitmq component sends basic ack after channel closed when endpoint is set to autoAck. Thanks to Dan Revel for the patch.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7248e67b Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7248e67b Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7248e67b Branch: refs/heads/camel-2.12.x Commit: 7248e67b3b6e2ee448bf70a9304f6de9e612bb27 Parents: 5f91492 Author: Claus Ibsen <[email protected]> Authored: Tue Oct 1 11:47:19 2013 +0200 Committer: Claus Ibsen <[email protected]> Committed: Tue Oct 1 11:47:33 2013 +0200 ---------------------------------------------------------------------- .../org/apache/camel/component/rabbitmq/RabbitMQConsumer.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/7248e67b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java ---------------------------------------------------------------------- diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java index a1128dd..468e728 100644 --- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java +++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java @@ -122,8 +122,10 @@ public class RabbitMQConsumer extends DefaultConsumer { consumer.getProcessor().process(exchange); long deliveryTag = envelope.getDeliveryTag(); - log.trace("Acknowleding receipt [delivery_tag={}]", deliveryTag); - channel.basicAck(deliveryTag, false); + if (consumer.endpoint.isAutoAck()) { + log.trace("Acknowledging receipt [delivery_tag={}]", deliveryTag); + channel.basicAck(deliveryTag, false); + } } catch (Exception e) { getExceptionHandler().handleException("Error processing exchange", exchange, e);
