mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-26 00:02:06 +01:00
Use a CopyOnWriteArraySet for joinedRooms
Since it is accessed concurrently. And also may cause a ConcurrentModificationException when the MultiUserChatManager tries to re-join the joined rooms. Fixes SMACK-819.
This commit is contained in:
parent
cb27b02658
commit
fd97f5ba0b
1 changed files with 5 additions and 2 deletions
|
@ -20,7 +20,6 @@ import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -134,7 +133,11 @@ public final class MultiUserChatManager extends Manager {
|
||||||
new NotFilter(MessageTypeFilter.ERROR));
|
new NotFilter(MessageTypeFilter.ERROR));
|
||||||
|
|
||||||
private final Set<InvitationListener> invitationsListeners = new CopyOnWriteArraySet<InvitationListener>();
|
private final Set<InvitationListener> invitationsListeners = new CopyOnWriteArraySet<InvitationListener>();
|
||||||
private final Set<EntityBareJid> joinedRooms = new HashSet<>();
|
|
||||||
|
/**
|
||||||
|
* The XMPP addresses of currently joined rooms.
|
||||||
|
*/
|
||||||
|
private final Set<EntityBareJid> joinedRooms = new CopyOnWriteArraySet<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Map of MUC JIDs to {@link MultiUserChat} instances. We use weak references for the values in order to allow
|
* A Map of MUC JIDs to {@link MultiUserChat} instances. We use weak references for the values in order to allow
|
||||||
|
|
Loading…
Reference in a new issue