From d27fef0baefe03f3543f51ccf748902260814a29 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Thu, 27 Jun 2024 21:29:33 +0200 Subject: [PATCH] [sinttest] Do not leak stanza listener in MultiUserChatOccupantIntegrationTest --- .../smackx/muc/MultiUserChatOccupantIntegrationTest.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatOccupantIntegrationTest.java b/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatOccupantIntegrationTest.java index b8883dd05..c662ef3f1 100644 --- a/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatOccupantIntegrationTest.java +++ b/smack-integration-test/src/main/java/org/jivesoftware/smackx/muc/MultiUserChatOccupantIntegrationTest.java @@ -32,6 +32,7 @@ import java.util.stream.Collectors; import org.jivesoftware.smack.PresenceListener; import org.jivesoftware.smack.SmackException; +import org.jivesoftware.smack.StanzaListener; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.FromMatchesFilter; import org.jivesoftware.smack.packet.Message; @@ -107,12 +108,13 @@ public class MultiUserChatOccupantIntegrationTest extends AbstractMultiUserChatI final ResultSyncPoint subjectResultSyncPoint = new ResultSyncPoint<>(); final List results = new ArrayList<>(); - conTwo.addStanzaListener(stanza -> { + final StanzaListener stanzaListener = stanza -> { results.add(stanza); if (stanza instanceof Message && ((Message) stanza).getSubject() != null) { subjectResultSyncPoint.signal(((Message) stanza).getSubject()); } - }, FromMatchesFilter.create(mucAddress)); + }; + conTwo.addStanzaListener(stanzaListener, FromMatchesFilter.create(mucAddress)); try { mucAsSeenByTwo.join(nicknameTwo); @@ -130,6 +132,7 @@ public class MultiUserChatOccupantIntegrationTest extends AbstractMultiUserChatI assertEquals(mucSubject, ((Message) results.get(3)).getSubject(), "The fourth stanza that was received by '" + conTwo.getUser() + "' after it joined room '" + mucAddress + "' was expected to be a different stanza."); } finally { tryDestroy(mucAsSeenByOne); + conTwo.removeStanzaListener(stanzaListener); } }