[Mono-bugs] [Bug 77711][Maj] New - Mono.Data.SqliteClient throws exception retrieving non-ASCII data

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Sun Mar 5 19:34:43 EST 2006

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by hackel at walkingfish.com.


--- shadow/77711	2006-03-05 19:34:43.000000000 -0500
+++ shadow/77711.tmp.7745	2006-03-05 19:34:43.000000000 -0500
@@ -0,0 +1,62 @@
+Bug#: 77711
+Product: Mono: Class Libraries
+Version: 1.1
+OS Details: Ubuntu/dapper
+Status: NEW   
+Priority: Major
+Component: Sys.Data.SqlClient
+AssignedTo: tsenganal at novell.com                            
+ReportedBy: hackel at walkingfish.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: Mono.Data.SqliteClient throws exception retrieving non-ASCII data
+Mono version:
+I discovered this problem while using f-spot.  Within this application, if
+I create a tag with extended characters (e.g. "München") and then restart,
+f-spot will no longer start with the following exception:
+Unhandled Exception: System.NullReferenceException: Object reference not
+set to an instance of an object
+in <0x000bd> TagStore:LoadAllTags ()
+in <0x0005c> TagStore:.ctor (Mono.Data.SqliteClient.SqliteConnection
+connection, Boolean is_new)
+in <0x000f9> Db:Init (System.String path, Boolean create_if_missing)
+in <0x0008d> FSpot.Core:.ctor ()
+in <0x00337> FSpot.Driver:Main (System.String[] args)
+This is generated by a relatively simple query (clipped from TagStore.cs):
+        private void LoadAllTags ()
+        {
+                SqliteCommand command = new SqliteCommand ();
+                command.Connection = Connection;
+                command.CommandText = "SELECT id, name, is_category,
+sort_priority, icon FROM tags";
+                SqliteDataReader reader = command.ExecuteReader ();
+                while (reader.Read ()) {
+                        uint id = Convert.ToUInt32 (reader [0]);
+                        string name = reader [1].ToString ();
+                        bool is_category = (Convert.ToUInt32 (reader [2])
+!= 0);
+                        if (reader [4] != null)
+                                SetIconFromString (tag, reader [4].ToString
+                        tag.SortPriority = Convert.ToInt32 (reader[3]);
+                }
+If I run that query using sqlsharp, the tag in question is returned with
+NULL as its name.  If I run the query with the sqlite tool, the name is
+returned properly.  If I change the name with sqlite to remove any
+non-ASCII characters, f-spot loads and all is well.
+I would consider this to be a very critical issue.  I've just run into it
+as an English speaker myself, and so I can't imagine how frustrating it
+must be for a non-English speaker!
+Related f-spot bug: http://bugzilla.gnome.org/show_bug.cgi?id=333550

More information about the mono-bugs mailing list