From 4f4be8ed47634a1e241f6f8a1a55a0c3ad0b2088 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Thu, 12 Jul 2018 17:38:10 +0200 Subject: [PATCH] make recreation of views atomic operation --- .../keychain/KeychainDatabase.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainDatabase.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainDatabase.java index a9bb30d40..f42b46b43 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainDatabase.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainDatabase.java @@ -363,9 +363,15 @@ public class KeychainDatabase { } private void recreateUnifiedKeyView(SupportSQLiteDatabase db) { - // noinspection deprecation - db.execSQL("DROP VIEW IF EXISTS " + KeysModel.UNIFIEDKEYVIEW_VIEW_NAME); - db.execSQL(KeysModel.UNIFIEDKEYVIEW); + try { + db.beginTransaction(); + // noinspection deprecation + db.execSQL("DROP VIEW IF EXISTS " + KeysModel.UNIFIEDKEYVIEW_VIEW_NAME); + db.execSQL(KeysModel.UNIFIEDKEYVIEW); + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } } private void migrateSecretKeysFromDbToLocalStorage(SupportSQLiteDatabase db, Context context) throws IOException {