[tracker-miners/sam/index-file-sync] Don't ignore errors when making IndexFile call
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners/sam/index-file-sync] Don't ignore errors when making IndexFile call
- Date: Mon, 30 Mar 2020 00:49:48 +0000 (UTC)
commit b99fa4ca75e61590dbf56aafe659b1ae343be962
Author: Sam Thursfield <sam afuera me uk>
Date: Mon Mar 30 02:35:12 2020 +0200
Don't ignore errors when making IndexFile call
src/tracker/tracker-index.c | 26 ++++++++++++++++++++++++--
src/tracker/tracker-indexing-status.c | 27 ++++++++++++++++++---------
2 files changed, 42 insertions(+), 11 deletions(-)
---
diff --git a/src/tracker/tracker-index.c b/src/tracker/tracker-index.c
index d625a5c23..c33621fd6 100644
--- a/src/tracker/tracker-index.c
+++ b/src/tracker/tracker-index.c
@@ -110,8 +110,30 @@ index_file_cb (GObject *source_object,
gpointer user_data)
{
GMainLoop *loop = user_data;
+ GError *error = NULL;
+
+ tracker_miner_manager_index_file_finish (TRACKER_MINER_MANAGER (source_object), res, &error);
+
+ if (error) {
+ g_error (error->message);
+ }
+
+ g_main_loop_quit (loop);
+}
+
+static void
+index_file_for_process_cb (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GMainLoop *loop = user_data;
+ GError *error = NULL;
+
+ tracker_miner_manager_index_file_for_process_finish (TRACKER_MINER_MANAGER (source_object), res,
NULL);
- tracker_miner_manager_index_file_finish (TRACKER_MINER_MANAGER (source_object), res, NULL);
+ if (error) {
+ g_error (error->message);
+ }
g_main_loop_quit (loop);
}
@@ -191,7 +213,7 @@ index_run (void)
file = g_file_new_for_commandline_arg (*p);
if (monitor_mode) {
- status = tracker_miner_manager_index_file_for_process_async (manager, file, NULL,
index_file_cb, main_loop);
+ status = tracker_miner_manager_index_file_for_process_async (manager, file, NULL,
index_file_for_process_cb, main_loop);
} else {
status = tracker_miner_manager_index_file_async (manager, file, NULL, index_file_cb,
main_loop);
}
diff --git a/src/tracker/tracker-indexing-status.c b/src/tracker/tracker-indexing-status.c
index cadc34c74..c32ec8422 100644
--- a/src/tracker/tracker-indexing-status.c
+++ b/src/tracker/tracker-indexing-status.c
@@ -553,17 +553,22 @@ tracker_indexing_status_get_errors (TrackerIndexingStatus *status)
g_rw_lock_reader_lock (&priv->lock);
- g_hash_table_iter_init (&iter, priv->failed);
- while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *)&value)) {
- gchar *message;
- gchar *uri;
+ if (g_task_had_error (priv->task)) {
+ /* The caller should have collected this error from the GAsyncResult. */
+ result = g_list_prepend (result, g_strdup ("Failure calling the index method."));
+ } else {
+ g_hash_table_iter_init (&iter, priv->failed);
+ while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *)&value)) {
+ gchar *message;
+ gchar *uri;
- uri = g_file_get_uri (key);
- message = g_strdup_printf ("%s: %s", uri, value);
+ uri = g_file_get_uri (key);
+ message = g_strdup_printf ("%s: %s", uri, value);
- result = g_list_prepend (result, message);
+ result = g_list_prepend (result, message);
- g_free (uri);
+ g_free (uri);
+ }
}
g_rw_lock_reader_unlock (&priv->lock);
@@ -587,7 +592,11 @@ tracker_indexing_status_had_error (TrackerIndexingStatus *status)
g_rw_lock_reader_lock (&priv->lock);
- result = g_hash_table_size (priv->failed) == 0;
+ result = g_task_had_error (priv->task);
+
+ if (result == FALSE) {
+ result = g_hash_table_size (priv->failed) == 0;
+ }
g_rw_lock_reader_unlock (&priv->lock);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]