diff options
author | Carlos Garnacho <carlos@lanedo.com> | 2011-12-19 11:37:31 +0100 |
---|---|---|
committer | Carlos Garnacho <carlos@lanedo.com> | 2011-12-19 11:54:00 +0100 |
commit | b32c55b50fc947ce752a05b495cf4d9b1fe70dbf (patch) | |
tree | 363c1bd1940d9afb03155c0bef9f539da4b66ebc | |
parent | 6ff8e2544e6a14f49311953858ce400e0d8de81d (diff) | |
download | tracker-b32c55b50fc947ce752a05b495cf4d9b1fe70dbf.tar.gz |
libtracker-miner: don't put sparql for missing/cancelled files
This behavior is analogous to 0.10. The miner has to allow lesser
errors and insert minimal sparql for the files, but this kind of
errors must not trigger sparql insertion.
-rw-r--r-- | src/libtracker-miner/tracker-miner-fs.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c index ddaa21879..83b6d5676 100644 --- a/src/libtracker-miner/tracker-miner-fs.c +++ b/src/libtracker-miner/tracker-miner-fs.c @@ -1115,7 +1115,7 @@ item_add_or_update_cb (TrackerMinerFS *fs, const GError *error) { UpdateProcessingTaskContext *ctxt; - TrackerTask *sparql_task; + TrackerTask *sparql_task = NULL; GFile *task_file; gchar *uri; @@ -1129,7 +1129,12 @@ item_add_or_update_cb (TrackerMinerFS *fs, g_message ("Could not process '%s': %s", uri, error->message); fs->priv->total_files_notified_error++; - sparql_task = tracker_sparql_task_new_with_sparql (task_file, ctxt->builder); + + if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) && + !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + sparql_task = tracker_sparql_task_new_with_sparql (task_file, + ctxt->builder); + } } else { if (ctxt->urn) { gboolean attribute_update_only; @@ -1186,11 +1191,13 @@ item_add_or_update_cb (TrackerMinerFS *fs, } } - tracker_sparql_buffer_push (fs->priv->sparql_buffer, - sparql_task, - ctxt->priority, - sparql_buffer_task_finished_cb, - fs); + if (sparql_task) { + tracker_sparql_buffer_push (fs->priv->sparql_buffer, + sparql_task, + ctxt->priority, + sparql_buffer_task_finished_cb, + fs); + } if (!tracker_task_pool_limit_reached (TRACKER_TASK_POOL (fs->priv->sparql_buffer))) { item_queue_handlers_set_up (fs); |