Catch AlreadyClosedException and retry connection

AlreadyClosedException thrown by AMQConnection#createChannel() was
never caught which killed the rabbitmq publisher when connection was
closed unexpectedly.

Bug: Issue 9652
Change-Id: Iba218acae5f7987d1728b7d5510cab53621fe980
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
index 6284b86..3ae3104 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
@@ -21,6 +21,7 @@
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.Message;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.Monitor;
 import com.googlesource.gerrit.plugins.rabbitmq.session.Session;
+import com.rabbitmq.client.AlreadyClosedException;
 import com.rabbitmq.client.Channel;
 import com.rabbitmq.client.Connection;
 import com.rabbitmq.client.ConnectionFactory;
@@ -120,7 +121,7 @@
         ch.addShutdownListener(channelListener);
         failureCount.set(0);
         LOGGER.info(MSG("Channel #{} opened."), ch.getChannelNumber());
-      } catch (IOException ex) {
+      } catch (IOException | AlreadyClosedException ex) {
         LOGGER.error(MSG("Failed to open channel."), ex);
         failureCount.incrementAndGet();
       }