diff -urN tracker.orig/src/trackerd/tracker-dbus-search.c tracker.test/src/trackerd/tracker-dbus-search.c --- tracker.orig/src/trackerd/tracker-dbus-search.c 2006-08-01 21:13:46.000000000 +0200 +++ tracker.test/src/trackerd/tracker-dbus-search.c 2006-08-07 10:35:50.848824440 +0200 @@ -482,6 +482,25 @@ str = tracker_rdf_query_to_sql (db_con, query, service, fields, row_count, search_term, sort_results, offset, limit , NULL); + if (! str) { + g_free (search_term); + reply = dbus_message_new_method_return (rec->message); + dbus_message_iter_init_append (reply, &iter); + + dbus_message_iter_open_container (&iter, + DBUS_TYPE_ARRAY, + DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING + DBUS_TYPE_STRING_AS_STRING + DBUS_TYPE_VARIANT_AS_STRING + DBUS_DICT_ENTRY_END_CHAR_AS_STRING, + &iter_dict); + dbus_message_iter_close_container (&iter, &iter_dict); + + dbus_connection_send (rec->connection, reply, NULL); + dbus_message_unref (reply); + g_return_if_fail (str); /* show us a warning */ + } + g_free (search_term); tracker_log ("translated rdf query is %s\n", str); res = tracker_exec_sql (db_con->db, str);