summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-10-22 20:10:02 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-10-22 20:10:02 +0000
commit8a77fc4fc589ad8ba4939134f90a855637269b5c (patch)
tree04cd1847f6c2d56285825f3a93093faf2ae46944 /qpid/java
parent94e61e729038e79ba6c037452a85dbfb94844d72 (diff)
downloadqpid-python-8a77fc4fc589ad8ba4939134f90a855637269b5c.tar.gz
QPID-6125 : only send close frame if not already closing
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1633706 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
index 8f4f4cdf35..d3f48fc664 100644
--- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
+++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
@@ -853,20 +853,23 @@ public class AMQProtocolEngine implements ServerProtocolEngine,
private void closeConnection(int channelId, AMQFrame frame)
{
- try
- {
- markChannelAwaitingCloseOk(channelId);
- closeSession();
- }
- finally
+ if(!_closing.get())
{
try
{
- writeFrame(frame);
+ markChannelAwaitingCloseOk(channelId);
+ closeSession();
}
finally
{
- closeProtocolSession();
+ try
+ {
+ writeFrame(frame);
+ }
+ finally
+ {
+ closeProtocolSession();
+ }
}
}