diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipientCache.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipientCache.java index 267198cb63..2ad40e741d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipientCache.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/LiveRecipientCache.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.content.Context; import androidx.annotation.AnyThread; +import androidx.annotation.GuardedBy; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; @@ -33,11 +34,14 @@ public final class LiveRecipientCache { private static final int CACHE_MAX = 1000; private static final int CACHE_WARM_MAX = 500; + private static final Object SELF_LOCK = new Object(); + private final Context context; private final RecipientDatabase recipientDatabase; private final Map recipients; private final LiveRecipient unknown; + @GuardedBy("SELF_LOCK") private RecipientId localRecipientId; private boolean warmedUp; @@ -111,7 +115,7 @@ public final class LiveRecipientCache { } @NonNull Recipient getSelf() { - synchronized (this) { + synchronized (SELF_LOCK) { if (localRecipientId == null) { UUID localUuid = TextSecurePreferences.getLocalUuid(context); String localE164 = TextSecurePreferences.getLocalNumber(context);