From 597d16f566c1ec3c7b53f6c9c5e12c88a4d79ba9 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 9 Oct 2020 12:16:38 -0400 Subject: [PATCH] Ensure one row per recipient in getRecipientSettingsForSync(). Technically there's no unique constraint in ThreadDatabase to guarantee only one thread per recipient. We saw a crash that indicated that one user has two threads for the same recipient. That's not true for any of my devices. Still, best to play it safe here while we try to figure out why this is happening. --- .../org/thoughtcrime/securesms/database/RecipientDatabase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java index 1dbf48096..0a42cad9c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java @@ -1079,7 +1079,7 @@ public class RecipientDatabase extends Database { .flatMap(Stream::of) .toArray(String[]::new); - try (Cursor cursor = db.query(table, columns, query, args, null, null, null)) { + try (Cursor cursor = db.query(table, columns, query, args, TABLE_NAME + "." + ID, null, null)) { while (cursor != null && cursor.moveToNext()) { out.add(getRecipientSettings(context, cursor)); }