summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2015-03-17 16:11:18 +0000
committerRobert Godfrey <rgodfrey@apache.org>2015-03-17 16:11:18 +0000
commit54f8c414e2b6aa15039071f5cab23dcdc5822f41 (patch)
tree7e0f6b6d14bddbaf90e6233a82003fab5b816dcb /qpid/java/broker-plugins
parent5d64ed503b8868a2930f01b8233926c689aed200 (diff)
downloadqpid-python-54f8c414e2b6aa15039071f5cab23dcdc5822f41.tar.gz
QPID-6429 : Fix issue when async close is called twice on a session, tidy up debug and logging
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1667346 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java56
1 files changed, 31 insertions, 25 deletions
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
index 855272fbef..4956faa199 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
@@ -260,21 +260,24 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
@Override
public void performAction(final ServerConnection conn)
{
- ExecutionException ex = new ExecutionException();
- ExecutionErrorCode code = ExecutionErrorCode.INTERNAL_ERROR;
- try
+ if(!session.isClosing())
{
- code = ExecutionErrorCode.get(cause.getCode());
+ ExecutionException ex = new ExecutionException();
+ ExecutionErrorCode code = ExecutionErrorCode.INTERNAL_ERROR;
+ try
+ {
+ code = ExecutionErrorCode.get(cause.getCode());
+ }
+ catch (IllegalArgumentException iae)
+ {
+ // Ignore, already set to INTERNAL_ERROR
+ }
+ ex.setErrorCode(code);
+ ex.setDescription(message);
+ session.invoke(ex);
+
+ session.close(cause, message);
}
- catch (IllegalArgumentException iae)
- {
- // Ignore, already set to INTERNAL_ERROR
- }
- ex.setErrorCode(code);
- ex.setDescription(message);
- session.invoke(ex);
-
- session.close(cause, message);
}
});
@@ -382,20 +385,23 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
@Override
public void performAction(final ServerConnection object)
{
- closeSubscriptions();
- performDeleteTasks();
-
- setState(CLOSING);
- ConnectionCloseCode replyCode = ConnectionCloseCode.NORMAL;
- try
- {
- replyCode = ConnectionCloseCode.get(cause.getCode());
- }
- catch (IllegalArgumentException iae)
+ if(!isClosing())
{
- // Ignore
+ closeSubscriptions();
+ performDeleteTasks();
+
+ setState(CLOSING);
+ ConnectionCloseCode replyCode = ConnectionCloseCode.NORMAL;
+ try
+ {
+ replyCode = ConnectionCloseCode.get(cause.getCode());
+ }
+ catch (IllegalArgumentException iae)
+ {
+ // Ignore
+ }
+ sendConnectionClose(replyCode, message);
}
- sendConnectionClose(replyCode, message);
}
});
}