From 36418bec59d6ea35f5a8a3cea183212f3bf97479 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 21 Jun 2023 10:24:12 -0400 Subject: [PATCH] Ensure SqlCipherDeletingErrorHandler runs delete. --- .../SqlCipherDeletingErrorHandler.java | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherDeletingErrorHandler.java b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherDeletingErrorHandler.java index ad60bf138a..2d94e8f341 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherDeletingErrorHandler.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherDeletingErrorHandler.java @@ -28,26 +28,29 @@ public final class SqlCipherDeletingErrorHandler implements DatabaseErrorHandler @Override public void onCorruption(SQLiteDatabase db, String message) { - Log.e(TAG, "Database '" + databaseName + "' corrupted! Message: " + message + ". Going to try to run some diagnostics."); + try { + Log.e(TAG, "Database '" + databaseName + "' corrupted! Message: " + message + ". Going to try to run some diagnostics."); - Log.w(TAG, " ===== PRAGMA integrity_check ====="); - try (Cursor cursor = db.rawQuery("PRAGMA integrity_check", null)) { - while (cursor.moveToNext()) { - Log.w(TAG, CursorUtil.readRowAsString(cursor)); + Log.w(TAG, " ===== PRAGMA integrity_check ====="); + try (Cursor cursor = db.rawQuery("PRAGMA integrity_check", null)) { + while (cursor.moveToNext()) { + Log.w(TAG, CursorUtil.readRowAsString(cursor)); + } + } catch (Throwable t) { + Log.e(TAG, "Failed to do integrity_check!", t); } - } catch (Throwable t) { - Log.e(TAG, "Failed to do integrity_check!", t); - } - Log.w(TAG, "===== PRAGMA cipher_integrity_check ====="); - try (Cursor cursor = db.rawQuery("PRAGMA cipher_integrity_check", null)) { - while (cursor.moveToNext()) { - Log.w(TAG, CursorUtil.readRowAsString(cursor)); + Log.w(TAG, "===== PRAGMA cipher_integrity_check ====="); + try (Cursor cursor = db.rawQuery("PRAGMA cipher_integrity_check", null)) { + while (cursor.moveToNext()) { + Log.w(TAG, CursorUtil.readRowAsString(cursor)); + } + } catch (Throwable t) { + Log.e(TAG, "Failed to do cipher_integrity_check!", t); } - } catch (Throwable t) { - Log.e(TAG, "Failed to do cipher_integrity_check!", t); + } finally { + Log.w(TAG, "Deleting database " + databaseName); + ApplicationDependencies.getApplication().deleteDatabase(databaseName); } - - ApplicationDependencies.getApplication().deleteDatabase(databaseName); } }