Camel RabbitMQ component acknowledges the message even though the autoAck is
set to false and there is an exception in the route. I don't know if I am
doing anything wrong.

My guess is that the error could be in the RabbitMQConsumer class.

try {
                consumer.getProcessor().process(exchange);

                long deliveryTag = envelope.getDeliveryTag();
                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);
            }

Process method does not throw exception but sets exception property of the
exchange to the exception object when there is any error while processing
the exchange. There may need to be a check to see if the exception property
is null before acknowledging the message.



--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-RabbitMQ-acknowledges-event-though-autoAck-is-set-to-false-and-there-is-an-exception-in-the-roe-tp5756207.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to