summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlos@lanedo.com>2011-12-19 11:37:31 +0100
committerCarlos Garnacho <carlos@lanedo.com>2011-12-19 11:54:00 +0100
commitb32c55b50fc947ce752a05b495cf4d9b1fe70dbf (patch)
tree363c1bd1940d9afb03155c0bef9f539da4b66ebc
parent6ff8e2544e6a14f49311953858ce400e0d8de81d (diff)
downloadtracker-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.c21
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);