[tracker/tracker-0.10] libtracker-data: Handle errors of manager_init by shutting down systems



commit 46e3b9535da900298fadb38fe7a8769d34caefc6
Author: Philip Van Hoof <philip codeminded be>
Date:   Thu Jun 16 16:17:33 2011 +0200

    libtracker-data: Handle errors of manager_init by shutting down systems

 src/libtracker-data/tracker-data-manager.c |   89 +++++++++++++++++++++++++++-
 1 files changed, 87 insertions(+), 2 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index a88e949..6a9d803 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -3518,12 +3518,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 	                              busy_user_data,
 	                              busy_operation,
 	                              &internal_error)) {
+		g_propagate_error (error, internal_error);
 
+		tracker_ontologies_shutdown ();
 		if (!reloading) {
 			tracker_locale_shutdown ();
 		}
-
-		g_propagate_error (error, internal_error);
+		tracker_data_update_shutdown ();
 
 		return FALSE;
 	}
@@ -3560,9 +3561,12 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 			                      TRACKER_DB_JOURNAL_ERROR_BEGIN_OF_JOURNAL)) {
 				g_propagate_error (error, internal_error);
 
+				tracker_db_manager_shutdown ();
+				tracker_ontologies_shutdown ();
 				if (!reloading) {
 					tracker_locale_shutdown ();
 				}
+				tracker_data_update_shutdown ();
 
 				return FALSE;
 			} else {
@@ -3599,9 +3603,12 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 					              TRACKER_DB_JOURNAL_ERROR_BEGIN_OF_JOURNAL)) {
 					g_propagate_error (error, internal_error);
 
+					tracker_db_manager_shutdown ();
+					tracker_ontologies_shutdown ();
 					if (!reloading) {
 						tracker_locale_shutdown ();
 					}
+					tracker_data_update_shutdown ();
 
 					return FALSE;
 				} else {
@@ -3629,9 +3636,12 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 			if (internal_error) {
 				g_propagate_error (error, internal_error);
 
+				tracker_db_manager_shutdown ();
+				tracker_ontologies_shutdown ();
 				if (!reloading) {
 					tracker_locale_shutdown ();
 				}
+				tracker_data_update_shutdown ();
 
 				return FALSE;
 			}
@@ -3690,9 +3700,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 		if (internal_error) {
 			g_propagate_error (error, internal_error);
 
+			tracker_db_journal_shutdown (NULL);
+			tracker_db_manager_shutdown ();
+			tracker_ontologies_shutdown ();
 			if (!reloading) {
 				tracker_locale_shutdown ();
 			}
+			tracker_data_update_shutdown ();
 
 			return FALSE;
 		}
@@ -3706,9 +3720,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 		if (internal_error) {
 			g_propagate_error (error, internal_error);
 
+			tracker_db_journal_shutdown (NULL);
+			tracker_db_manager_shutdown ();
+			tracker_ontologies_shutdown ();
 			if (!reloading) {
 				tracker_locale_shutdown ();
 			}
+			tracker_data_update_shutdown ();
 
 			return FALSE;
 		}
@@ -3727,9 +3745,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 				if (internal_error) {
 					g_propagate_error (error, internal_error);
 
+					tracker_db_journal_shutdown (NULL);
+					tracker_db_manager_shutdown ();
+					tracker_ontologies_shutdown ();
 					if (!reloading) {
 						tracker_locale_shutdown ();
 					}
+					tracker_data_update_shutdown ();
 
 					return FALSE;
 				}
@@ -3758,9 +3780,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 		if (internal_error) {
 			g_propagate_error (error, internal_error);
 
+			tracker_db_journal_shutdown (NULL);
+			tracker_db_manager_shutdown ();
+			tracker_ontologies_shutdown ();
 			if (!reloading) {
 				tracker_locale_shutdown ();
 			}
+			tracker_data_update_shutdown ();
 
 			return FALSE;
 		}
@@ -3782,9 +3808,12 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 			if (internal_error) {
 				g_propagate_error (error, internal_error);
 
+				tracker_db_manager_shutdown ();
+				tracker_ontologies_shutdown ();
 				if (!reloading) {
 					tracker_locale_shutdown ();
 				}
+				tracker_data_update_shutdown ();
 
 				return FALSE;
 			}
@@ -3935,6 +3964,15 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 						tracker_data_begin_ontology_transaction (&internal_error);
 						if (internal_error) {
 							g_propagate_error (error, internal_error);
+
+							tracker_db_journal_shutdown (NULL);
+							tracker_db_manager_shutdown ();
+							tracker_ontologies_shutdown ();
+							if (!reloading) {
+								tracker_locale_shutdown ();
+							}
+							tracker_data_update_shutdown ();
+
 							return FALSE;
 						}
 						transaction_started = TRUE;
@@ -3967,6 +4005,15 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 						tracker_data_commit_transaction (&internal_error);
 						if (internal_error) {
 							g_propagate_error (error, internal_error);
+
+							tracker_db_journal_shutdown (NULL);
+							tracker_db_manager_shutdown ();
+							tracker_ontologies_shutdown ();
+							if (!reloading) {
+								tracker_locale_shutdown ();
+							}
+							tracker_data_update_shutdown ();
+
 							return FALSE;
 						}
 
@@ -4016,6 +4063,15 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 					tracker_data_begin_ontology_transaction (&internal_error);
 					if (internal_error) {
 						g_propagate_error (error, internal_error);
+
+						tracker_db_journal_shutdown (NULL);
+						tracker_db_manager_shutdown ();
+						tracker_ontologies_shutdown ();
+						if (!reloading) {
+							tracker_locale_shutdown ();
+						}
+						tracker_data_update_shutdown ();
+
 						return FALSE;
 					}
 					transaction_started = TRUE;
@@ -4049,9 +4105,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 					if (internal_error) {
 						g_propagate_error (error, internal_error);
 
+						tracker_db_journal_shutdown (NULL);
+						tracker_db_manager_shutdown ();
+						tracker_ontologies_shutdown ();
 						if (!reloading) {
 							tracker_locale_shutdown ();
 						}
+						tracker_data_update_shutdown ();
 
 						return FALSE;
 					}
@@ -4152,9 +4212,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 				if (internal_error) {
 					g_propagate_error (error, internal_error);
 
+					tracker_db_journal_shutdown (NULL);
+					tracker_db_manager_shutdown ();
+					tracker_ontologies_shutdown ();
 					if (!reloading) {
 						tracker_locale_shutdown ();
 					}
+					tracker_data_update_shutdown ();
 
 					return FALSE;
 				}
@@ -4192,9 +4256,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 				g_critical ("Fatal error dealing with ontology changes: %s", ontology_error->message);
 				g_propagate_error (error, ontology_error);
 
+				tracker_db_journal_shutdown (NULL);
+				tracker_db_manager_shutdown ();
+				tracker_ontologies_shutdown ();
 				if (!reloading) {
 					tracker_locale_shutdown ();
 				}
+				tracker_data_update_shutdown ();
 
 				return FALSE;
 			}
@@ -4221,9 +4289,14 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 			tracker_data_commit_transaction (&internal_error);
 			if (internal_error) {
 				g_propagate_error (error, internal_error);
+
+				tracker_db_journal_shutdown (NULL);
+				tracker_db_manager_shutdown ();
+				tracker_ontologies_shutdown ();
 				if (!reloading) {
 					tracker_locale_shutdown ();
 				}
+				tracker_data_update_shutdown ();
 
 				return FALSE;
 			}
@@ -4267,9 +4340,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 			g_hash_table_unref (uri_id_map);
 			g_propagate_error (error, internal_error);
 
+			tracker_db_journal_shutdown (NULL);
+			tracker_db_manager_shutdown ();
+			tracker_ontologies_shutdown ();
 			if (!reloading) {
 				tracker_locale_shutdown ();
 			}
+			tracker_data_update_shutdown ();
 
 			return FALSE;
 		}
@@ -4283,9 +4360,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 			g_hash_table_unref (uri_id_map);
 			g_propagate_error (error, internal_error);
 
+			tracker_db_journal_shutdown (NULL);
+			tracker_db_manager_shutdown ();
+			tracker_ontologies_shutdown ();
 			if (!reloading) {
 				tracker_locale_shutdown ();
 			}
+			tracker_data_update_shutdown ();
 
 			return FALSE;
 		}
@@ -4311,9 +4392,13 @@ tracker_data_manager_init (TrackerDBManagerFlags   flags,
 		if (internal_error) {
 			g_propagate_error (error, internal_error);
 
+			tracker_db_journal_shutdown (NULL);
+			tracker_db_manager_shutdown ();
+			tracker_ontologies_shutdown ();
 			if (!reloading) {
 				tracker_locale_shutdown ();
 			}
+			tracker_data_update_shutdown ();
 
 			return FALSE;
 		}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]