[evolution] Bug #525932 - Unhelpful "Error while Filtering Selected Messages."
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug #525932 - Unhelpful "Error while Filtering Selected Messages."
- Date: Mon, 3 Dec 2012 15:29:58 +0000 (UTC)
commit b9b56d39cc500e5393545414af3d3315ded3ee74
Author: Milan Crha <mcrha redhat com>
Date: Mon Dec 3 16:29:02 2012 +0100
Bug #525932 - Unhelpful "Error while Filtering Selected Messages."
libemail-engine/mail-ops.c | 20 ++++++++++++++++----
1 files changed, 16 insertions(+), 4 deletions(-)
---
diff --git a/libemail-engine/mail-ops.c b/libemail-engine/mail-ops.c
index bc49261..d93a17b 100644
--- a/libemail-engine/mail-ops.c
+++ b/libemail-engine/mail-ops.c
@@ -104,6 +104,7 @@ em_filter_folder_element_exec (struct _filter_mail_msg *m,
CamelFolder *folder;
GPtrArray *uids, *folder_uids = NULL;
gboolean success = TRUE;
+ GError *local_error = NULL;
folder = m->source_folder;
@@ -124,16 +125,16 @@ em_filter_folder_element_exec (struct _filter_mail_msg *m,
success = camel_filter_driver_filter_folder (
m->driver, folder, m->cache, uids, m->delete,
- cancellable, error) == 0;
- camel_filter_driver_flush (m->driver, error);
+ cancellable, &local_error) == 0;
+ camel_filter_driver_flush (m->driver, &local_error);
if (folder_uids)
camel_folder_free_uids (folder, folder_uids);
/* sync our source folder */
- if (!m->cache)
+ if (!m->cache && !local_error)
camel_folder_synchronize_sync (
- folder, FALSE, cancellable, error);
+ folder, FALSE, cancellable, &local_error);
camel_folder_thaw (folder);
if (m->destination)
@@ -144,6 +145,17 @@ em_filter_folder_element_exec (struct _filter_mail_msg *m,
g_object_unref (m->driver);
m->driver = NULL;
+ if (g_error_matches (local_error, CAMEL_SERVICE_ERROR, CAMEL_SERVICE_ERROR_URL_INVALID) ||
+ g_error_matches (local_error, CAMEL_FOLDER_ERROR, CAMEL_FOLDER_ERROR_INVALID)) {
+ g_set_error (error, local_error->domain, local_error->code,
+ _("Failed to filter selected messages. One reason can be that folder "
+ "location set in one or more filters is invalid. Please check your "
+ "filters in Edit->Message Filters.\n"
+ "Original error was: %s"), local_error->message);
+ g_clear_error (&local_error);
+ } else if (local_error)
+ g_propagate_error (error, local_error);
+
return success;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]