From e943bbbd91d7de1c98276c01c8cfffe218bd608c Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Fri, 1 Jul 2016 08:18:56 +0200 Subject: [PATCH] Handle AlreadyLoggedInException in ReconnectionManager Fixes SMACK-725. --- .../java/org/jivesoftware/smack/ReconnectionManager.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java b/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java index f14362736..b75159b51 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ReconnectionManager.java @@ -250,6 +250,12 @@ public class ReconnectionManager { // Successfully reconnected. attempts = 0; } + catch (SmackException.AlreadyLoggedInException e) { + // This can happen if another thread concurrently triggers a reconnection + // and/or login. Obviously it should not be handled as a reconnection + // failure. See also SMACK-725. + LOGGER.log(Level.FINER, "Reconnection not required, was already logged in", e); + } catch (SmackException | IOException | XMPPException e) { // Fires the failed reconnection notification for (ConnectionListener listener : connection.connectionListeners) {