Build: #137 was successful Changes by spslinger <3893604+spslinger@users.noreply.github.com> and Florian Schmaus <flo@geekplace.eu>
Code commits
Smack (4.3)
-
Florian Schmaus <flo@geekplace.eu> 85731fbe3eeaa988cd9b163cba4e042500680046
Merge pull request #275 from spslinger/fix-getPresence-ConcurrentModificationException
Fix getPresence ConcurrentModificationException -
spslinger <3893604+spslinger@users.noreply.github.com> 1e21ab763cfbfdb1925408fd4b9112a65ff6ded7
Fix getPresence ConcurrentModificationException
Fix for SMACK-841
Since Smack 4.2.4, the getPresencesInternal method in the Roster class
can return a LruCache object, which is a LinkedHashMap with access
order. This means that any access using get or getOrDefault will be a
modification of the Map. If you loop over the keySet of the Map and
there are more than one, the second call to get will throw a
ConcurrentModificationException!
Since the keys are only used here to obtain the corresponding
values, the simplest solution is to just loop over the values instead.- smack-im/src/main/java/org/jivesoftware/smack/roster/Roster.java (version 1e21ab763cfbfdb1925408fd4b9112a65ff6ded7)