From 17c2ed411d747f3206e0e4ea4cd7c4e8331f7d11 Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Thu, 13 Nov 2014 14:44:19 +0100 Subject: [PATCH] made presences synchronized --- .../conversations/entities/Presences.java | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/entities/Presences.java b/src/main/java/eu/siacs/conversations/entities/Presences.java index b58998473..bccf31170 100644 --- a/src/main/java/eu/siacs/conversations/entities/Presences.java +++ b/src/main/java/eu/siacs/conversations/entities/Presences.java @@ -22,24 +22,32 @@ public class Presences { } public void updatePresence(String resource, int status) { - this.presences.put(resource, status); + synchronized (this.presences) { + this.presences.put(resource, status); + } } public void removePresence(String resource) { - this.presences.remove(resource); + synchronized (this.presences) { + this.presences.remove(resource); + } } public void clearPresences() { - this.presences.clear(); + synchronized (this.presences) { + this.presences.clear(); + } } public int getMostAvailableStatus() { int status = OFFLINE; - Iterator> it = presences.entrySet().iterator(); - while (it.hasNext()) { - Entry entry = it.next(); - if (entry.getValue() < status) - status = entry.getValue(); + synchronized (this.presences) { + Iterator> it = presences.entrySet().iterator(); + while (it.hasNext()) { + Entry entry = it.next(); + if (entry.getValue() < status) + status = entry.getValue(); + } } return status; } @@ -61,16 +69,22 @@ public class Presences { } public int size() { - return presences.size(); + synchronized (this.presences) { + return presences.size(); + } } public String[] asStringArray() { - final String[] presencesArray = new String[presences.size()]; - presences.keySet().toArray(presencesArray); - return presencesArray; + synchronized (this.presences) { + final String[] presencesArray = new String[presences.size()]; + presences.keySet().toArray(presencesArray); + return presencesArray; + } } public boolean has(String presence) { - return presences.containsKey(presence); + synchronized (this.presences) { + return presences.containsKey(presence); + } } }