From 195deda1855eafb92a3bf45edda8f9ffb349dcd4 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 4 Oct 2020 19:57:19 +0200 Subject: [PATCH] Consider failed search as not found on deleting message --- app/src/main/java/eu/faircode/email/Core.java | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 24a04e6a6c..0bb3dbdc59 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1228,23 +1228,28 @@ class Core { } } - if (!TextUtils.isEmpty(message.msgid) && !deleted) { - Message[] imessages = ifolder.search(new MessageIDTerm(message.msgid)); - if (imessages == null) - Log.w(folder.name + " search for msgid=" + message.msgid + " returned null"); - else - for (Message iexisting : imessages) { - long muid = ifolder.getUID(iexisting); - Log.i(folder.name + " deleting uid=" + muid); - try { - iexisting.setFlag(Flags.Flag.DELETED, true); - } catch (MessageRemovedException ignored) { - Log.w(folder.name + " existing gone uid=" + muid); + if (!TextUtils.isEmpty(message.msgid) && !deleted) + try { + Message[] imessages = ifolder.search(new MessageIDTerm(message.msgid)); + if (imessages == null) + Log.w(folder.name + " search for msgid=" + message.msgid + " returned null"); + else + for (Message iexisting : imessages) { + long muid = ifolder.getUID(iexisting); + Log.i(folder.name + " deleting uid=" + muid); + try { + iexisting.setFlag(Flags.Flag.DELETED, true); + deleted = true; + } catch (MessageRemovedException ignored) { + Log.w(folder.name + " existing gone uid=" + muid); + } } - } - } + } catch (MessagingException ex) { + Log.w(ex); + } - ifolder.expunge(); + if (deleted) + ifolder.expunge(); db.message().deleteMessage(message.id); } finally {