From 52a49769f9a825a8c0252efcad0d96635fb257a6 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Tue, 5 Oct 2021 20:42:42 +0200 Subject: [PATCH] [muc] Check for self-presence first in presence listener Fixes SMACK-914 --- .../org/jivesoftware/smackx/muc/MultiUserChat.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java index b80f3582d..800b50555 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/MultiUserChat.java @@ -212,7 +212,12 @@ public class MultiUserChat { switch (presence.getType()) { case available: Presence oldPresence = occupantsMap.put(from, presence); - if (oldPresence != null) { + if (mucUser.getStatus().contains(MUCUser.Status.PRESENCE_TO_SELF_110)) { + processedReflectedSelfPresence = true; + synchronized (this) { + notify(); + } + } else if (oldPresence != null) { // Get the previous occupant's affiliation & role MUCUser mucExtension = MUCUser.from(oldPresence); MUCAffiliation oldAffiliation = mucExtension.getItem().getAffiliation(); @@ -228,11 +233,6 @@ public class MultiUserChat { newAffiliation, isUserStatusModification, from); - } else if (mucUser.getStatus().contains(MUCUser.Status.PRESENCE_TO_SELF_110)) { - processedReflectedSelfPresence = true; - synchronized (this) { - notify(); - } } else { // A new occupant has joined the room for (ParticipantStatusListener listener : participantStatusListeners) {