From 5c80bbf25d84b4f09996f66b14e393e9ad370f57 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 14 Oct 2025 23:13:18 +0200 Subject: [PATCH] Handle changed folder closed --- .../eu/faircode/email/ServiceSynchronize.java | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 98018e37a4..32f7f45bef 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -2037,10 +2037,14 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences fetch(folder, ifolder, e.getMessages(), false, false, "added"); Thread.sleep(FETCH_YIELD_DURATION); } catch (Throwable ex) { - Log.e(folder.name, ex); - EntityLog.log(ServiceSynchronize.this, EntityLog.Type.Account, folder, - account.name + "/" + folder.name + " added " + Log.formatThrowable(ex, false)); - EntityOperation.sync(ServiceSynchronize.this, folder.id, false); + if (ex instanceof FolderClosedException) + state.error(ex); + else { + Log.e(folder.name, ex); + EntityLog.log(ServiceSynchronize.this, EntityLog.Type.Account, folder, + account.name + "/" + folder.name + " added " + Log.formatThrowable(ex, false)); + EntityOperation.sync(ServiceSynchronize.this, folder.id, false); + } } finally { if (wlMessage.isHeld()) wlMessage.release(); @@ -2058,9 +2062,13 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences Thread.sleep(FETCH_YIELD_DURATION); } catch (Throwable ex) { Log.e(folder.name, ex); - EntityLog.log(ServiceSynchronize.this, EntityLog.Type.Account, folder, - account.name + "/" + folder.name + " removed " + Log.formatThrowable(ex, false)); - EntityOperation.sync(ServiceSynchronize.this, folder.id, false); + if (ex instanceof FolderClosedException) + state.error(ex); + else { + EntityLog.log(ServiceSynchronize.this, EntityLog.Type.Account, folder, + account.name + "/" + folder.name + " removed " + Log.formatThrowable(ex, false)); + EntityOperation.sync(ServiceSynchronize.this, folder.id, false); + } } finally { if (wlMessage.isHeld()) wlMessage.release(); @@ -2084,9 +2092,13 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences Thread.sleep(FETCH_YIELD_DURATION); } catch (Throwable ex) { Log.e(folder.name, ex); - EntityLog.log(ServiceSynchronize.this, EntityLog.Type.Account, folder, - account.name + "/" + folder.name + " changed " + Log.formatThrowable(ex, false)); - EntityOperation.sync(ServiceSynchronize.this, folder.id, false); + if (ex instanceof FolderClosedException) + state.error(ex); + else { + EntityLog.log(ServiceSynchronize.this, EntityLog.Type.Account, folder, + account.name + "/" + folder.name + " changed " + Log.formatThrowable(ex, false)); + EntityOperation.sync(ServiceSynchronize.this, folder.id, false); + } } finally { if (wlMessage.isHeld()) wlMessage.release();