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; + } } } }