[geary/wip/improve-claiming-folder-session: 5/9] Ensure IMAP client session is released on error claiming folder session



commit ab66ef948a28400584e8d2853bf8d9f07c023d70
Author: Michael Gratton <mike vee net>
Date:   Tue Nov 13 15:50:35 2018 +1100

    Ensure IMAP client session is released on error claiming folder session

 src/engine/imap-engine/imap-engine-generic-account.vala | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)
---
diff --git a/src/engine/imap-engine/imap-engine-generic-account.vala 
b/src/engine/imap-engine/imap-engine-generic-account.vala
index 273fcf3e..f21e6c2e 100644
--- a/src/engine/imap-engine/imap-engine-generic-account.vala
+++ b/src/engine/imap-engine/imap-engine-generic-account.vala
@@ -365,6 +365,17 @@ private abstract class Geary.ImapEngine.GenericAccount : Geary.Account {
 
         account.close();
 
+        Imap.FolderSession? folder_session = null;
+        if (folder_err == null) {
+            try {
+                folder_session = yield new Imap.FolderSession(
+                    this.information.id, client, folder, cancellable
+                );
+            } catch (Error err) {
+                folder_err = err;
+            }
+        }
+
         if (folder_err != null) {
             try {
                 yield this.session_pool.release_session_async(client);
@@ -375,9 +386,7 @@ private abstract class Geary.ImapEngine.GenericAccount : Geary.Account {
             throw folder_err;
         }
 
-        return yield new Imap.FolderSession(
-            this.information.id, client, folder, cancellable
-        );
+        return folder_session;
     }
 
     /**


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]