mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-12-22 20:47:57 +01:00
muc: synchronize Stats.create(Integer)
Since this method is used by the MUCUserProvider, it is potentially invoked concurrently and the access to the statusMap must be synchronized then.
This commit is contained in:
parent
fa643f12d5
commit
e2e228fc93
1 changed files with 8 additions and 4 deletions
|
@ -420,10 +420,14 @@ public class MUCUser implements ExtensionElement {
|
|||
}
|
||||
|
||||
public static Status create(Integer i) {
|
||||
Status status = statusMap.get(i);
|
||||
if (status == null) {
|
||||
status = new Status(i);
|
||||
statusMap.put(i, status);
|
||||
Status status;
|
||||
// TODO: Use computeIfAbsent once Smack's minimum required Android SDK level is 24 or higher.
|
||||
synchronized (statusMap) {
|
||||
status = statusMap.get(i);
|
||||
if (status == null) {
|
||||
status = new Status(i);
|
||||
statusMap.put(i, status);
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue