[tracker/initable-db-iface] libtracker-bus, -direct, -sparql: Error handling, get_direct
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/initable-db-iface] libtracker-bus, -direct, -sparql: Error handling, get_direct
- Date: Thu, 3 Feb 2011 10:55:37 +0000 (UTC)
commit a31cc8dc59aa473a051d90258aa99d8f19e3cf9e
Author: Philip Van Hoof <philip codeminded be>
Date: Thu Feb 3 11:53:50 2011 +0100
libtracker-bus, -direct, -sparql: Error handling, get_direct
This makes the connection.get_direct and connection.get APIs work
right.
Fixes NB#222182.
src/libtracker-bus/tracker-bus.vala | 10 +++-------
src/libtracker-direct/tracker-direct.vala | 14 ++++++--------
src/libtracker-sparql/tracker-backend.vala | 7 ++++++-
3 files changed, 15 insertions(+), 16 deletions(-)
---
diff --git a/src/libtracker-bus/tracker-bus.vala b/src/libtracker-bus/tracker-bus.vala
index e17c9fc..b0b3137 100644
--- a/src/libtracker-bus/tracker-bus.vala
+++ b/src/libtracker-bus/tracker-bus.vala
@@ -347,11 +347,7 @@ public class Tracker.Bus.Connection : Tracker.Sparql.Connection {
}
}
-public Tracker.Sparql.Connection? module_init () {
- try {
- Tracker.Sparql.Connection plugin = new Tracker.Bus.Connection ();
- return plugin;
- } catch {
- return null;
- }
+public Tracker.Sparql.Connection? module_init () throws GLib.Error {
+ Tracker.Sparql.Connection plugin = new Tracker.Bus.Connection ();
+ return plugin;
}
diff --git a/src/libtracker-direct/tracker-direct.vala b/src/libtracker-direct/tracker-direct.vala
index a58b1a9..cc3e51f 100644
--- a/src/libtracker-direct/tracker-direct.vala
+++ b/src/libtracker-direct/tracker-direct.vala
@@ -31,11 +31,13 @@ public class Tracker.Direct.Connection : Tracker.Sparql.Connection {
}
try {
+ // I don't really know why we are hiding the real error by wrapping
+ // it in a Sparql.Error.INTERNAL here ...
if (!Data.Manager.init (DBManagerFlags.READONLY, null, null, false, select_cache_size, 0, null, null)) {
throw new Sparql.Error.INTERNAL ("Unable to initialize database");
}
} catch (Tracker.DBInterfaceError e) {
- throw new Sparql.Error.INTERNAL ("Unable to initialize database");
+ throw new Sparql.Error.INTERNAL ("Unable to initialize database: %s", e.message);
}
initialized = true;
@@ -112,11 +114,7 @@ public class Tracker.Direct.Connection : Tracker.Sparql.Connection {
}
}
-public Tracker.Sparql.Connection? module_init () {
- try {
- Tracker.Sparql.Connection plugin = new Tracker.Direct.Connection ();
- return plugin;
- } catch (Tracker.Sparql.Error e) {
- return null;
- }
+public Tracker.Sparql.Connection? module_init () throws GLib.Error {
+ Tracker.Sparql.Connection plugin = new Tracker.Direct.Connection ();
+ return plugin;
}
diff --git a/src/libtracker-sparql/tracker-backend.vala b/src/libtracker-sparql/tracker-backend.vala
index 6ecbb5f..94edf0b 100644
--- a/src/libtracker-sparql/tracker-backend.vala
+++ b/src/libtracker-sparql/tracker-backend.vala
@@ -35,7 +35,7 @@ class Tracker.Sparql.Backend : Connection {
BUS
}
- private delegate Tracker.Sparql.Connection? ModuleInitFunc ();
+ private delegate Tracker.Sparql.Connection? ModuleInitFunc () throws GLib.Error;
public Backend (bool direct_only = false) throws Sparql.Error
requires (Module.supported ()) {
@@ -262,6 +262,11 @@ class Tracker.Sparql.Backend : Connection {
// Call module init function
Tracker.Sparql.Connection c = module_init ();
+ if (c == null) {
+ // For some reason the error when set by module_init isn't passed on :-\
+ throw new Sparql.Error.INTERNAL ("Unable to initialize database");
+ }
+
debug ("Loaded module source: '%s'", module.name ());
return c;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]