[tracker] libtracker-data: Fix transaction handling for unknown blank nodes
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Subject: [tracker] libtracker-data: Fix transaction handling for unknown blank nodes
- Date: Fri, 22 May 2009 07:04:53 -0400 (EDT)
commit fdc7dd0adcbfd92cce568b8dd695b6b66c398efa
Author: Jürg Billeter <j bitron ch>
Date: Fri May 22 13:01:34 2009 +0200
libtracker-data: Fix transaction handling for unknown blank nodes
This does not properly fix the handling of blank nodes as objects yet,
however, it should work correctly in practically all situations now and
especially fix database locking.
---
src/libtracker-data/tracker-data-update.c | 18 ++++++++++++------
1 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 5cbdc35..34e33c3 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -897,16 +897,22 @@ tracker_data_insert_statement (const gchar *subject,
}
blank_uri = g_hash_table_lookup (blank_buffer.table, object);
- g_return_if_fail (blank_uri != NULL);
- /* now insert statement referring to blank node */
- tracker_data_insert_statement (subject, predicate, blank_uri);
+ if (blank_uri != NULL) {
+ /* now insert statement referring to blank node */
+ tracker_data_insert_statement (subject, predicate, blank_uri);
- g_hash_table_remove (blank_buffer.table, object);
+ g_hash_table_remove (blank_buffer.table, object);
- tracker_data_commit_transaction ();
+ tracker_data_commit_transaction ();
- return;
+ return;
+ } else {
+ /* TODO: to fix this properly, we need to split
+ tracker_data_insert_statement into two functions,
+ one for uri objects and one for literal objects */
+ g_warning ("Blank node '%s' not found", object);
+ }
}
if (g_str_has_prefix (subject, ":")) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]