diff --git a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java index eff83268d..883812f59 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractXMPPConnection.java @@ -2012,7 +2012,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection { from = XmppStringUtils.completeJidFrom(localpart, to); } String id = getStreamId(); - sendNonza(new StreamOpen(to, from, id, config.getXmlLang(), StreamOpen.StreamContentNamespace.client)); + sendNonza(new StreamOpen(to, from, id)); } public static final class SmackTlsContext { diff --git a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java index e302a1159..730320132 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/ConnectionConfiguration.java @@ -24,7 +24,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; -import java.util.Locale; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; @@ -119,8 +118,6 @@ public abstract class ConnectionConfiguration { private final String password; private final Resourcepart resource; - private final Locale language; - /** * The optional SASL authorization identity (see RFC 6120 § 6.3.8). */ @@ -168,8 +165,6 @@ public abstract class ConnectionConfiguration { // Resource can be null, this means that the server must provide one resource = builder.resource; - language = builder.language; - xmppServiceDomain = builder.xmppServiceDomain; if (xmppServiceDomain == null) { throw new IllegalArgumentException("Must define the XMPP domain"); @@ -481,34 +476,6 @@ public abstract class ConnectionConfiguration { return resource; } - /** - * Returns the stream language to use when connecting to the server. - * - * @return the stream language to use when connecting to the server. - */ - public Locale getLanguage() { - return language; - } - - /** - * Returns the xml:lang string of the stream language to use when connecting to the server. - * - *
If the developer sets the language to null, this will also return null, leading to - * the removal of the xml:lang tag from the stream. If a Locale("") is configured, this will - * return "", which can be used as an override.
- * - * @return the stream language to use when connecting to the server. - */ - public String getXmlLang() { - // TODO: Change to Locale.toLanguageTag() once Smack's minimum Android API level is 21 or higher. - // This will need a workaround for new Locale("").getLanguageTag() returning "und". Expected - // behavior of this function: - // - returns null if language is null - // - returns "" if language.getLanguage() returns the empty string - // - returns language.toLanguageTag() otherwise - return language != null ? language.toString().replace("_", "-") : null; - } - /** * Returns the optional XMPP address to be requested as the SASL authorization identity. * @@ -597,7 +564,6 @@ public abstract class ConnectionConfiguration { private CharSequence username; private String password; private Resourcepart resource; - private Locale language = Locale.getDefault(); private boolean sendPresence = true; private ProxyInfo proxy; private CallbackHandler callbackHandler; @@ -722,19 +688,6 @@ public abstract class ConnectionConfiguration { return getThis(); } - /** - * Set the stream language. - * - * @param language the language to use. - * @return a reference to this builder. - * @see RFC 6120 § 4.7.4 - * @see XML 1.0 § 2.12 Language Identification - */ - public B setLanguage(Locale language) { - this.language = language; - return getThis(); - } - /** * Set the resource we are requesting from the server. * diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/XmlStringBuilder.java b/smack-core/src/main/java/org/jivesoftware/smack/util/XmlStringBuilder.java index 4f0b93680..56e6eb177 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/util/XmlStringBuilder.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/util/XmlStringBuilder.java @@ -112,7 +112,7 @@ public class XmlStringBuilder implements Appendable, CharSequence, Element { public XmlStringBuilder element(String name, Enum> content) { assert content != null; - element(name, content.toString()); + element(name, content.name()); return this; } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/muc/MucMemoryLeakTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/muc/MucMemoryLeakTest.java index d9e35fefd..ad7c24ebd 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/muc/MucMemoryLeakTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/muc/MucMemoryLeakTest.java @@ -19,14 +19,12 @@ package org.jivesoftware.smackx.muc; import org.jivesoftware.smack.test.util.SmackTestSuite; import org.jivesoftware.smack.util.MemoryLeakTestUtil; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; +import org.junit.Test; import org.jxmpp.stringprep.XmppStringprepException; public class MucMemoryLeakTest extends SmackTestSuite { @Test - @Disabled public void mucMemoryLeakTest() throws XmppStringprepException, IllegalArgumentException, InterruptedException { MemoryLeakTestUtil.noResourceLeakTest(c -> MultiUserChatManager.getInstanceFor(c)); }