From 3a071bdd08b8a0a47d27fc1def5be917dab0370c Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 30 Oct 2023 11:00:31 -0500 Subject: [PATCH] Need to synchronize all presences access --- .../siacs/conversations/entities/Presences.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Presences.java b/src/main/java/eu/siacs/conversations/entities/Presences.java index e32e7e7a005b8f8b7b98ca721e701a64c7cd76a4..f625ddd965bd4327feefe72f393512c89a311955 100644 --- a/src/main/java/eu/siacs/conversations/entities/Presences.java +++ b/src/main/java/eu/siacs/conversations/entities/Presences.java @@ -150,15 +150,16 @@ public class Presences { } public String firstWhichSupport(final String namespace) { - for (Map.Entry entry : this.presences.entrySet()) { - String resource = entry.getKey(); - Presence presence = entry.getValue(); - ServiceDiscoveryResult disco = presence.getServiceDiscoveryResult(); - if (disco != null && disco.getFeatures().contains(namespace)) { - return resource; + synchronized (this.presences) { + for (Map.Entry entry : this.presences.entrySet()) { + String resource = entry.getKey(); + Presence presence = entry.getValue(); + ServiceDiscoveryResult disco = presence.getServiceDiscoveryResult(); + if (disco != null && disco.getFeatures().contains(namespace)) { + return resource; + } } } - return null; }