From 2f5cb0ec624400208837cfe5a22eee079e097160 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 30 Nov 2020 08:17:07 +0100 Subject: [PATCH] Improved op error handling --- app/src/main/java/eu/faircode/email/Core.java | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 871f1e2a4c..e80d5221fd 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -437,13 +437,28 @@ class Core { ops.remove(s); } catch (Throwable ex) { Log.e(folder.name, ex); - db.operation().setOperationTries(op.id, op.tries); - EntityLog.log(context, folder.name + " op=" + op.name + " try=" + op.tries + " " + Log.formatThrowable(ex, false)); + try { + db.beginTransaction(); + + db.operation().setOperationTries(op.id, op.tries); + + op.error = Log.formatThrowable(ex); + db.operation().setOperationError(op.id, op.error); + + if (message != null && + !(ex instanceof IllegalArgumentException)) + db.message().setMessageError(message.id, op.error); + + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + } + if (similar.size() > 0) { // Retry individually group = false; @@ -451,20 +466,6 @@ class Core { continue; } - try { - db.beginTransaction(); - - op.error = Log.formatThrowable(ex, false); - db.operation().setOperationError(op.id, Log.formatThrowable(ex)); - - if (message != null && !(ex instanceof IllegalArgumentException)) - db.message().setMessageError(message.id, Log.formatThrowable(ex)); - - db.setTransactionSuccessful(); - } finally { - db.endTransaction(); - } - if (ifolder != null && !ifolder.isOpen()) break;