[tracker/parser] Turtle: Improve error handling
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/parser] Turtle: Improve error handling
- Date: Wed, 19 Aug 2009 10:41:52 +0000 (UTC)
commit c8ffcd1cebfef9c7efefea1c6f20452e939d6579
Author: Jürg Billeter <j bitron ch>
Date: Wed Aug 19 12:26:20 2009 +0200
Turtle: Improve error handling
src/libtracker-data/tracker-data-manager.c | 16 ++++++++++++++--
src/libtracker-data/tracker-turtle-reader.vala | 14 +++++---------
tests/libtracker-data/tracker-ontology-test.c | 3 ++-
tests/libtracker-data/tracker-sparql-test.c | 3 ++-
utils/services/Makefile.am | 1 +
5 files changed, 24 insertions(+), 13 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 09dd5f7..3cb483e 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -266,10 +266,16 @@ static void
import_ontology_file (const gchar *filename)
{
gchar *ontology_file;
+ GError *error = NULL;
ontology_file = g_build_filename (ontologies_dir, filename, NULL);
- tracker_turtle_reader_load (ontology_file);
+ tracker_turtle_reader_load (ontology_file, &error);
g_free (ontology_file);
+
+ if (error) {
+ g_critical ("%s", error->message);
+ g_error_free (error);
+ }
}
static void
@@ -765,6 +771,7 @@ tracker_data_manager_init (TrackerDBManagerFlags flags,
GList *sorted = NULL, *l;
gchar *test_schema_path;
const gchar *env_path;
+ GError *error = NULL;
env_path = g_getenv ("TRACKER_DB_ONTOLOGIES_DIR");
@@ -833,8 +840,13 @@ tracker_data_manager_init (TrackerDBManagerFlags flags,
import_ontology_file (l->data);
}
if (test_schema) {
- tracker_turtle_reader_load (test_schema_path);
+ tracker_turtle_reader_load (test_schema_path, &error);
g_free (test_schema_path);
+
+ if (error) {
+ g_critical ("%s", error->message);
+ g_error_free (error);
+ }
}
tracker_data_commit_transaction ();
diff --git a/src/libtracker-data/tracker-turtle-reader.vala b/src/libtracker-data/tracker-turtle-reader.vala
index e985a65..0d86959 100644
--- a/src/libtracker-data/tracker-turtle-reader.vala
+++ b/src/libtracker-data/tracker-turtle-reader.vala
@@ -180,8 +180,7 @@ public class Tracker.TurtleReader : Object {
state = State.SUBJECT;
continue;
} else {
- // TODO throw error
- return false;
+ throw new SparqlError.PARSE ("expected subject");
}
case State.SUBJECT:
// parse predicate
@@ -204,8 +203,7 @@ public class Tracker.TurtleReader : Object {
state = State.PREDICATE;
continue;
} else {
- // TODO throw error
- return false;
+ throw new SparqlError.PARSE ("expected predicate");
}
case State.PREDICATE:
// parse object
@@ -317,8 +315,7 @@ public class Tracker.TurtleReader : Object {
state = State.OBJECT;
return true;
} else {
- // TODO throw error
- return false;
+ throw new SparqlError.PARSE ("expected object");
}
case State.OBJECT:
if (accept (SparqlTokenType.COMMA)) {
@@ -336,14 +333,13 @@ public class Tracker.TurtleReader : Object {
state = State.BOS;
continue;
} else {
- // TODO throw error
- return false;
+ throw new SparqlError.PARSE ("expected comma, semicolon, or dot");
}
}
}
}
- public static void load (string path) {
+ public static void load (string path) throws SparqlError, DataError {
try {
Data.begin_transaction ();
diff --git a/tests/libtracker-data/tracker-ontology-test.c b/tests/libtracker-data/tracker-ontology-test.c
index b4b339a..ce33ef4 100644
--- a/tests/libtracker-data/tracker-ontology-test.c
+++ b/tests/libtracker-data/tracker-ontology-test.c
@@ -106,7 +106,8 @@ test_query (gconstpointer test_data)
/* load data set */
data_filename = g_strconcat (data_prefix, ".ttl", NULL);
- tracker_turtle_reader_load (data_filename);
+ tracker_turtle_reader_load (data_filename, &error);
+ g_assert (error == NULL);
query_filename = g_strconcat (test_prefix, ".rq", NULL);
g_file_get_contents (query_filename, &query, NULL, &error);
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index 695fd52..e389670 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -120,7 +120,8 @@ test_sparql_query (gconstpointer test_data)
/* load data set */
data_filename = g_strconcat (data_prefix, ".ttl", NULL);
- tracker_turtle_reader_load (data_filename);
+ tracker_turtle_reader_load (data_filename, &error);
+ g_assert (error == NULL);
query_filename = g_strconcat (test_prefix, ".rq", NULL);
g_file_get_contents (query_filename, &query, NULL, &error);
diff --git a/utils/services/Makefile.am b/utils/services/Makefile.am
index 14b5dcb..98cd070 100644
--- a/utils/services/Makefile.am
+++ b/utils/services/Makefile.am
@@ -4,6 +4,7 @@ noinst_PROGRAMS = ontology-validator ttl2html data-validator
INCLUDES = \
-DG_LOG_DOMAIN=\"Tracker\" \
+ -DTRACKER_COMPILATION \
-I$(top_srcdir)/src \
$(WARN_CFLAGS) \
$(GLIB2_CFLAGS) \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]