From 319ea1dadac851a0ee5d9c608bdb687da6c17af3 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Thu, 10 Jan 2019 23:09:12 +1100 Subject: [PATCH 1/2] Fix meson config warning --- src/engine/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/src/engine/meson.build b/src/engine/meson.build index 796e18d1..85d256a5 100644 --- a/src/engine/meson.build +++ b/src/engine/meson.build @@ -365,7 +365,6 @@ geary_engine_lib = static_library('geary-engine', # GNOME/vala#358 geary_engine_internal_header_fixup = custom_target( 'geary_engine_internal_header_fixup', - source: geary_engine_sources, output: [ 'geary-engine-internal.h', 'geary-engine-internal.vapi', From 018f700d0dfbedb3de5f1f7397d4c365c436c82e Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Thu, 10 Jan 2019 23:09:36 +1100 Subject: [PATCH 2/2] Fix unhandled error warning, tidy up error handling --- src/engine/imap/api/imap-client-service.vala | 27 +++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/engine/imap/api/imap-client-service.vala b/src/engine/imap/api/imap-client-service.vala index ab26ad02..ff854815 100644 --- a/src/engine/imap/api/imap-client-service.vala +++ b/src/engine/imap/api/imap-client-service.vala @@ -296,20 +296,29 @@ internal class Geary.Imap.ClientService : Geary.ClientService { // Nothing to do here } catch (GLib.Error err) { Geary.ErrorContext context = new Geary.ErrorContext(err); - debug("[%s] Error adding new session to the pool: %s", + debug("[%s] Error creating new session for the pool: %s", this.account.id, context.format_full_error()); - notify_connection_failed(new ErrorContext(err)); + notify_connection_failed(context); } - if (new_session != null) { - notify_connected(); - yield this.sessions_mutex.execute_locked(() => { - this.all_sessions.add(new_session); - }); - this.free_queue.send(new_session); - } else { + if (new_session == null) { // An error was thrown, so close the pool this.close_pool.begin(); + } else { + try { + yield this.sessions_mutex.execute_locked(() => { + this.all_sessions.add(new_session); + }); + this.free_queue.send(new_session); + notify_connected(); + } catch (GLib.Error err) { + Geary.ErrorContext context = new Geary.ErrorContext(err); + debug("[%s] Error adding new session to the pool: %s", + this.account.id, context.format_full_error()); + notify_connection_failed(context); + new_session.disconnect_async.begin(null); + this.close_pool.begin(); + } } }