From 0b47c2ae93d7c8fe6426a9975a396457961479a3 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 11 Feb 2022 10:15:04 -0500 Subject: [PATCH] Fix deadlock when retrieve avatars. --- .../thoughtcrime/securesms/jobs/RetrieveProfileJob.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java index 7cc0b60fa0..2342e3d801 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.java @@ -73,7 +73,8 @@ public class RetrieveProfileJob extends BaseJob { private static final String TAG = Log.tag(RetrieveProfileJob.class); - private static final String KEY_RECIPIENTS = "recipients"; + private static final String KEY_RECIPIENTS = "recipients"; + private static final String DEDUPE_KEY_RETRIEVE_AVATAR = KEY + "_RETRIEVE_PROFILE_AVATAR"; private final Set recipientIds; @@ -497,9 +498,10 @@ public class RetrieveProfileJob extends BaseJob { private static void setProfileAvatar(Recipient recipient, String profileAvatar) { if (recipient.getProfileKey() == null) return; - if (!Util.equals(profileAvatar, recipient.getProfileAvatar())) { - ApplicationDependencies.getJobManager().add(new RetrieveProfileAvatarJob(recipient, profileAvatar)); + SignalDatabase.runPostSuccessfulTransaction(DEDUPE_KEY_RETRIEVE_AVATAR + recipient.getId(), () -> { + ApplicationDependencies.getJobManager().add(new RetrieveProfileAvatarJob(recipient, profileAvatar)); + }); } }