You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/08/16 14:28:36 UTC
[5/6] camel git commit: Hardening stuff a little bit .. following
sugestions by @pcan
Hardening stuff a little bit .. following sugestions by @pcan
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/26a78cd1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/26a78cd1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/26a78cd1
Branch: refs/heads/camel-2.17.x
Commit: 26a78cd1ad0b108348e69f16b7be99c1d1d9130e
Parents: ce6eb9e
Author: miti <pr...@textkernel.nl>
Authored: Tue Aug 16 10:03:39 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Aug 16 16:28:14 2016 +0200
----------------------------------------------------------------------
.../component/rabbitmq/RabbitConsumer.java | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/26a78cd1/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitConsumer.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitConsumer.java
index cb2e47f..86c696a 100644
--- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitConsumer.java
+++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitConsumer.java
@@ -68,10 +68,16 @@ class RabbitConsumer implements com.rabbitmq.client.Consumer {
if (!consumer.getEndpoint().isAutoAck()) {
lock.acquire();
}
- doHandleDelivery(consumerTag, envelope, properties, body);
- if (!consumer.getEndpoint().isAutoAck()) {
- lock.release();
- }
+ //Channel might be open because while we were waiting for the lock, stop() has been succesfully called.
+ if (!channel.isOpen()) return;
+
+ try {
+ doHandleDelivery(consumerTag, envelope, properties, body);
+ } finally {
+ if (!consumer.getEndpoint().isAutoAck()) {
+ lock.release();
+ }
+ }
} catch (InterruptedException e) {
log.error("Thread Interrupted!");
@@ -187,13 +193,15 @@ class RabbitConsumer implements com.rabbitmq.client.Consumer {
if (isChannelOpen()) {
channel.close();
}
- lock.release();
} catch (TimeoutException e) {
log.error("Timeout occured");
throw e;
} catch (InterruptedException e1) {
log.error("Thread Interrupted!");
- }
+ } finally {
+ lock.release();
+
+ }
}
/**