diff --git a/smack-core/src/main/java/org/jivesoftware/smack/SASLAuthentication.java b/smack-core/src/main/java/org/jivesoftware/smack/SASLAuthentication.java index 5417d9dea..d15e6c446 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/SASLAuthentication.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/SASLAuthentication.java @@ -37,6 +37,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.logging.Logger; /** *

This class is responsible authenticating the user using SASL, binding the resource @@ -57,6 +58,8 @@ import java.util.Set; */ public class SASLAuthentication { + private static final Logger LOGGER = Logger.getLogger(SASLAuthentication.class.getName()); + private static final List REGISTERED_MECHANISMS = new ArrayList(); private static final Set BLACKLISTED_MECHANISMS = new HashSet(); @@ -408,6 +411,10 @@ public class SASLAuthentication { private List serverMechanisms() { Mechanisms mechanisms = connection.getFeature(Mechanisms.ELEMENT, Mechanisms.NAMESPACE); + if (mechanisms == null) { + LOGGER.warning("Server did not report any SASL mechanisms"); + return Collections.emptyList(); + } return mechanisms.getMechanisms(); } }