Fix shutdown session
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/impl/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/impl/AMQPSession.java
index 03bf85c..2f72470 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/impl/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/impl/AMQPSession.java
@@ -119,14 +119,19 @@
public void disconnect() {
LOGGER.info(MSG("Disconnecting..."));
try {
+ if (channel != null) {
+ channel.close();
+ }
+ } catch (Exception ex) {
+ LOGGER.warn(MSG("Error when close channel.") , ex);
+ }
+
+ try {
if (connection != null) {
connection.close();
}
} catch (Exception ex) {
LOGGER.warn(MSG("Error when close connection.") , ex);
- } finally {
- connection = null;
- channel = null;
}
}
@@ -160,8 +165,11 @@
channel = null;
}
} else if (obj instanceof Connection) {
- LOGGER.info(MSG("Connection disconnected."));
- connection = null;
+ Connection conn = (Connection) obj;
+ if (conn.equals(connection)) {
+ LOGGER.info(MSG("Connection disconnected."));
+ connection = null;
+ }
}
}
}