From 0e31bc8f7330b3213e94cccf74276273752076fe Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Thu, 10 May 2018 15:34:24 +0200 Subject: [PATCH] Fix Stanza.overrideExtension(ExtensionElement) Also fixes SMACK-818. --- .../src/main/java/org/jivesoftware/smack/packet/Stanza.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java index 58672bfe4..2dff229ab 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/packet/Stanza.java @@ -394,7 +394,10 @@ public abstract class Stanza implements TopLevelStreamElement { public ExtensionElement overrideExtension(ExtensionElement extension) { if (extension == null) return null; synchronized (packetExtensions) { - ExtensionElement removedExtension = removeExtension(extension); + // Note that we need to use removeExtension(String, String) here. If would use + // removeExtension(ExtensionElement) then we would remove based on the equality of ExtensionElement, which + // is not what we want in this case. + ExtensionElement removedExtension = removeExtension(extension.getElementName(), extension.getNamespace()); addExtension(extension); return removedExtension; }