From 172751cd424a0dec78a98105fbb5be6a8cb6f3b1 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 15 Mar 2022 12:57:10 -0400 Subject: [PATCH] Iterate over a snapshot of transaction listeners. --- .../org/thoughtcrime/securesms/database/SQLiteDatabase.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SQLiteDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/SQLiteDatabase.java index b21193b1b6..618dcc56a7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SQLiteDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SQLiteDatabase.java @@ -13,6 +13,7 @@ import net.zetetic.database.sqlcipher.SQLiteTransactionListener; import org.signal.core.util.tracing.Tracer; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Locale; import java.util.Map; @@ -201,7 +202,7 @@ public class SQLiteDatabase { @Override public void onCommit() { Set tasks = getPostTransactionTasks(); - for (Runnable r : tasks) { + for (Runnable r : new HashSet<>(tasks)) { r.run(); } tasks.clear();