Smack 3.2.1
If the current thread’s context classloader is the same as the SmackConfiguration’s classloader, we get 2 entries for each mechName element in defaultMechs.
While addSaslMech() protects against duplicates, the static initializer does not.
Further, if 2 or more smack-config.xml files with the same mechName are found on the classpath, the problem is multiplied. Consider calling addSaslMech() from the initializer.
$ svn diff
Index: source/org/jivesoftware/smack/SmackConfiguration.java
===================================================================
— source/org/jivesoftware/smack/SmackConfiguration.java (revision 12950)
+++ source/org/jivesoftware/smack/SmackConfiguration.java (working copy)
@@ -92,7 +92,7 @@
keepAliveInterval = parseIntProperty(parser, keepAliveInterval);
}
else if (parser.getName().equals("mechName")) {
-
defaultMechs.add(parser.nextText());
-
addSaslMech(parser.nextText()); } else if (parser.getName().equals("localSocks5ProxyEnabled")) { localSocks5ProxyEnabled = Boolean.parseBoolean(parser.nextText());