Prevent database deletion

pull/214/head
M66B 8 months ago
parent 8f82bdbe36
commit bf9e353754

@ -8,6 +8,7 @@ import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabaseCorruptException;
import android.database.sqlite.SQLiteException;
import android.net.Uri;
import android.text.TextUtils;
@ -448,6 +449,7 @@ public abstract class DB extends RoomDatabase {
@Override
public void onOpen(@NonNull SupportSQLiteDatabase db) {
try {
Map<String, String> crumb = new HashMap<>();
crumb.put("version", Integer.toString(db.getVersion()));
crumb.put("WAL", Boolean.toString(db.isWriteAheadLoggingEnabled()));
@ -520,6 +522,27 @@ public abstract class DB extends RoomDatabase {
dropTriggers(db);
createTriggers(db);
} catch (SQLiteException ex) {
/*
at eu.faircode.email.DB$6.onOpen(DB.java:522)
at eu.faircode.email.DB_Impl$1.onOpen(DB_Impl.java:171)
at androidx.room.RoomOpenHelper.onOpen(RoomOpenHelper.java:136)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onOpen(FrameworkSQLiteOpenHelper.kt:287)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:427)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.kt:232)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.kt:190)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.kt:151)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.kt:104)
at androidx.room.RoomDatabase.inTransaction(RoomDatabase.java:706)
*/
Log.e(ex);
// FrameworkSQLiteOpenHelper.innerGetDatabase will delete the database
if (ex instanceof SQLiteDatabaseCorruptException)
throw ex;
else
throw new RuntimeException("Open failed", ex);
}
}
@Override

Loading…
Cancel
Save