mirror of https://github.com/M66B/FairEmail.git
Prevent crash
This commit is contained in:
parent
c45e2f8709
commit
112f53ac13
|
@ -2846,11 +2846,47 @@ public abstract class DB extends RoomDatabase {
|
|||
public void endTransaction() {
|
||||
try {
|
||||
super.endTransaction();
|
||||
} catch (IllegalStateException ex) {
|
||||
if ("Cannot perform this operation because there is no current transaction.".equals(ex.getMessage()))
|
||||
Log.w(ex);
|
||||
else
|
||||
} catch (Throwable ex) {
|
||||
String msg = ex.getMessage();
|
||||
if (TextUtils.isEmpty(msg))
|
||||
throw ex;
|
||||
|
||||
if (msg.contains("no current transaction")) {
|
||||
// java.lang.IllegalStateException: Cannot perform this operation because there is no current transaction.
|
||||
Log.w(ex);
|
||||
return;
|
||||
}
|
||||
|
||||
if (msg.contains("no transaction is active")) {
|
||||
// Moto e⁶ plus - Android 9
|
||||
/*
|
||||
android.database.sqlite.SQLiteException: cannot rollback - no transaction is active (code 1 SQLITE_ERROR)
|
||||
at android.database.sqlite.SQLiteConnection.nativeExecute(SQLiteConnection.java:-2)
|
||||
at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:569)
|
||||
at android.database.sqlite.SQLiteSession.endTransactionUnchecked(SQLiteSession.java:439)
|
||||
at android.database.sqlite.SQLiteSession.endTransaction(SQLiteSession.java:401)
|
||||
at android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:566)
|
||||
at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.endTransaction(FrameworkSQLiteDatabase:75)
|
||||
at androidx.room.RoomDatabase.internalEndTransaction(RoomDatabase:594)
|
||||
at androidx.room.RoomDatabase.endTransaction(RoomDatabase:584)
|
||||
at eu.faircode.email.DB.endTransaction(DB:2842)
|
||||
at androidx.room.paging.LimitOffsetDataSource.loadInitial(LimitOffsetDataSource:181)
|
||||
at androidx.paging.PositionalDataSource.dispatchLoadInitial(PositionalDataSource:286)
|
||||
at androidx.paging.TiledPagedList.<init>(TiledPagedList:107)
|
||||
at androidx.paging.PagedList.create(PagedList:229)
|
||||
at androidx.paging.PagedList$Builder.build(PagedList:388)
|
||||
at androidx.paging.LivePagedListBuilder$1.compute(LivePagedListBuilder:206)
|
||||
at androidx.paging.LivePagedListBuilder$1.compute(LivePagedListBuilder:171)
|
||||
at androidx.lifecycle.ComputableLiveData$2.run(ComputableLiveData:110)
|
||||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
|
||||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
|
||||
at java.lang.Thread.run(Thread.java:764)
|
||||
*/
|
||||
Log.w(ex);
|
||||
return;
|
||||
}
|
||||
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue