Prevent race condition in loops over all bookmarks

Stephen Paul Weber created

java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextNode(HashMap.java:1441)
	at java.util.HashMap$ValueIterator.next(HashMap.java:1470)

Change summary

src/main/java/eu/siacs/conversations/entities/Account.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Account.java 🔗

@@ -488,7 +488,9 @@ public class Account extends AbstractEntity implements AvatarService.Avatarable
     }
 
     public Collection<Bookmark> getBookmarks() {
-        return this.bookmarks.values();
+        synchronized (this.bookmarks) {
+            return new HashSet<>(this.bookmarks.values());
+        }
     }
 
     public void setBookmarks(Map<Jid, Bookmark> bookmarks) {