From 2289fbfdf07db31d9e8fbe822335195fc382945f Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Thu, 17 Sep 2015 18:25:00 -0700 Subject: [PATCH] Put in database locking fixed a test --- DataStorage/SQLiteAndroid.cs | 17 ++++++++++++++--- DataStorage/SQLiteUnix.cs | 17 ++++++++++++++--- DataStorage/SQLiteWin32.cs | 17 ++++++++++++++--- Submodules/agg-sharp | 2 +- .../AutomationTests/CreateLibraryFolder.cs | 1 + 5 files changed, 44 insertions(+), 10 deletions(-) diff --git a/DataStorage/SQLiteAndroid.cs b/DataStorage/SQLiteAndroid.cs index d08471e5a..83b55b952 100644 --- a/DataStorage/SQLiteAndroid.cs +++ b/DataStorage/SQLiteAndroid.cs @@ -590,7 +590,10 @@ namespace SQLiteAndroid public List Query(string query, params object[] args) where T : new() { var cmd = CreateCommand(query, args); - return cmd.ExecuteQuery(); + lock (locker) + { + return cmd.ExecuteQuery(); + } } /// @@ -1093,9 +1096,14 @@ namespace SQLiteAndroid { return 0; } - return Insert(obj, "", obj.GetType()); + lock (locker) + { + return Insert(obj, "", obj.GetType()); + } } + object locker = new object(); + /// /// Inserts the given object and retrieves its /// auto incremented primary key if it has one. @@ -1242,7 +1250,10 @@ namespace SQLiteAndroid { return 0; } - return Update(obj, obj.GetType()); + lock (locker) + { + return Update(obj, obj.GetType()); + } } /// diff --git a/DataStorage/SQLiteUnix.cs b/DataStorage/SQLiteUnix.cs index 2fba7843b..493e900bf 100644 --- a/DataStorage/SQLiteUnix.cs +++ b/DataStorage/SQLiteUnix.cs @@ -563,9 +563,14 @@ namespace SQLiteUnix public List Query(string query, params object[] args) where T : new() { var cmd = CreateCommand(query, args); - return cmd.ExecuteQuery(); + lock (locker) + { + return cmd.ExecuteQuery(); + } } + object locker = new object(); + /// /// Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?' /// in the command text for each of the arguments and then executes that command. @@ -1066,7 +1071,10 @@ namespace SQLiteUnix { return 0; } - return Insert(obj, "", obj.GetType()); + lock (locker) + { + return Insert(obj, "", obj.GetType()); + } } /// @@ -1215,7 +1223,10 @@ namespace SQLiteUnix { return 0; } - return Update(obj, obj.GetType()); + lock (locker) + { + return Update(obj, obj.GetType()); + } } /// diff --git a/DataStorage/SQLiteWin32.cs b/DataStorage/SQLiteWin32.cs index 804f1a725..93e18428e 100644 --- a/DataStorage/SQLiteWin32.cs +++ b/DataStorage/SQLiteWin32.cs @@ -573,7 +573,10 @@ namespace SQLiteWin32 public List Query(string query, params object[] args) where T : new() { var cmd = CreateCommand(query, args); - return cmd.ExecuteQuery(); + lock (locker) + { + return cmd.ExecuteQuery(); + } } /// @@ -1076,9 +1079,14 @@ namespace SQLiteWin32 { return 0; } - return Insert(obj, "", obj.GetType()); + lock (locker) + { + return Insert(obj, "", obj.GetType()); + } } + object locker = new object(); + /// /// Inserts the given object and retrieves its /// auto incremented primary key if it has one. @@ -1225,7 +1233,10 @@ namespace SQLiteWin32 { return 0; } - return Update(obj, obj.GetType()); + lock (locker) + { + return Update(obj, obj.GetType()); + } } /// diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 8e14fd999..74aee9739 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 8e14fd999617dd5b79b5e8b71067c560e884b080 +Subproject commit 74aee973937936654c5873d91f27b55793aa999c diff --git a/Tests/MatterControl.Tests/MatterControl/AutomationTests/CreateLibraryFolder.cs b/Tests/MatterControl.Tests/MatterControl/AutomationTests/CreateLibraryFolder.cs index b469f9995..e9fe39fab 100644 --- a/Tests/MatterControl.Tests/MatterControl/AutomationTests/CreateLibraryFolder.cs +++ b/Tests/MatterControl.Tests/MatterControl/AutomationTests/CreateLibraryFolder.cs @@ -54,6 +54,7 @@ namespace MatterHackers.MatterControl.UI // Now do the actions specific to this test. (replace this for new tests) { testRunner.ClickByName("Library Tab"); + MatterControlUtilities.NavigateToFolder(testRunner, "Local Library Row Item Collection"); testRunner.ClickByName("Create Folder Button"); testRunner.Wait(.5);