summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-02-10 09:33:50 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-02-10 09:33:50 +0000
commit3d25f71abf7538cbb2167248967ebb87c138baef (patch)
tree8324ff62e3d3ee1cb2192dc9004f3aeea1b6933f
parentb26cf4a8ebfb718a3e314e1f696456cf2addce23 (diff)
downloadqpid-python-3d25f71abf7538cbb2167248967ebb87c138baef.tar.gz
QPID-5504 : allow for case where consumer target is closed before consumer is attached
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1566543 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java11
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ConsumerTarget_0_8.java12
2 files changed, 19 insertions, 4 deletions
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java
index 6ad9de22cb..114095bace 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java
@@ -107,7 +107,11 @@ public class ConsumerTarget_0_10 extends AbstractConsumerTarget implements FlowC
boolean closed = false;
State state = getState();
- getConsumer().getSendLock();
+ final Consumer consumer = getConsumer();
+ if(consumer != null)
+ {
+ consumer.getSendLock();
+ }
try
{
while(!closed && state != State.CLOSED)
@@ -122,7 +126,10 @@ public class ConsumerTarget_0_10 extends AbstractConsumerTarget implements FlowC
}
finally
{
- getConsumer().releaseSendLock();
+ if(consumer != null)
+ {
+ consumer.releaseSendLock();
+ }
}
return closed;
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ConsumerTarget_0_8.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ConsumerTarget_0_8.java
index cd71db15cd..0f0e49bf7f 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ConsumerTarget_0_8.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ConsumerTarget_0_8.java
@@ -428,7 +428,12 @@ public abstract class ConsumerTarget_0_8 extends AbstractConsumerTarget implemen
boolean closed = false;
State state = getState();
- getConsumer().getSendLock();
+ final Consumer consumer = getConsumer();
+
+ if(consumer != null)
+ {
+ consumer.getSendLock();
+ }
try
{
while(!closed && state != State.CLOSED)
@@ -444,7 +449,10 @@ public abstract class ConsumerTarget_0_8 extends AbstractConsumerTarget implemen
}
finally
{
- getConsumer().releaseSendLock();
+ if(consumer != null)
+ {
+ consumer.releaseSendLock();
+ }
}
}