QPID-8477: [Broker-J] Close sender on connection error only when state is AWAIT_OPEN
This closes #64
(cherry picked from commit b8542b075f188539f60c965f1fa13684bddcb772)
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java
index 09c46d1..8fcd9e0 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java
@@ -1164,6 +1164,7 @@
private void closeConnection(final Error error)
{
+ LOGGER.debug("Closing connection {} (state={}) due to {}", this, _connectionState, error);
_closeCause = error.getDescription();
Close close = new Close();
close.setError(error);
@@ -1179,6 +1180,7 @@
sendOpen(0, 0);
sendClose(close);
_connectionState = ConnectionState.CLOSED;
+ getSender().close();
break;
case OPENED:
sendClose(close);
@@ -1197,9 +1199,6 @@
default:
throw new ServerScopedRuntimeException("Unknown state: " + _connectionState);
}
-
- getSender().close();
-
}
@Override