GNOME Bugzilla – Bug 620242
dealing with invalid URIs isn't robust and prevents launching f-spot
Last modified: 2010-06-08 09:44:03 UTC
I have ended up with a photos.db that f-spot now fails to parse: [Warn 12:23:41.415] Caught an exception - System.UriFormatException: URI scheme must start with a letter and must consist of one of alphabet, digits, '+', '-' or '.' character. (in `System') at System.Uri.Parse (UriKind kind, System.String uriString) [0x00000] at System.Uri.ParseUri (UriKind kind) [0x00000] at System.Uri..ctor (System.Uri baseUri, System.String relativeUri, Boolean dontEscape) [0x00000] at System.Uri..ctor (System.Uri baseUri, System.String relativeUri) [0x00000] at FSpot.Widgets.FolderTreeModel.UpdateFolderTree () [0x00000] at FSpot.Widgets.FolderTreeModel..ctor () [0x00000] at FSpot.Widgets.FolderTreeView..ctor () [0x00000] at FSpot.Widgets.FolderTreePage..ctor () [0x00000] at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[],System.Exception&) at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. (in `mscorlib') at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] at Mono.Addins.RuntimeAddin.CreateInstance (System.String typeName, Boolean throwIfNotFound) [0x00000] at Mono.Addins.RuntimeAddin.CreateInstance (System.String typeName) [0x00000] at FSpot.Extensions.SidebarPageNode.GetPage () [0x00000] at FSpot.MainWindow.OnSidebarExtensionChanged (System.Object s, Mono.Addins.ExtensionNodeEventArgs args) [0x00000] at Mono.Addins.ExtensionNode.OnChildNodeAdded (Mono.Addins.ExtensionNode node) [0x00000] at Mono.Addins.ExtensionNode.NotifyChildChanged () [0x00000] at Mono.Addins.TreeNode.NotifyChildrenChanged () [0x00000] at Mono.Addins.ExtensionContext.NotifyConditionChanged (Mono.Addins.ConditionType cond) [0x00000] at Mono.Addins.ExtensionContext.OnConditionChanged (System.Object s, System.EventArgs a) [0x00000] at Mono.Addins.ConditionType.NotifyChanged () [0x00000] at FSpot.Extensions.ViewModeCondition.<ViewModeCondition>m__8 () [0x00000] at FSpot.Extensions.ViewModeCondition.set_Mode (ViewMode value) [0x00000] at FSpot.Widgets.Sidebar.HandleContextChanged (System.Object sender, System.EventArgs args) [0x00000] at FSpot.Widgets.Sidebar.set_Context (ViewContext value) [0x00000] at FSpot.MainWindow..ctor (.Db db) [0x00000] at FSpot.App.get_Organizer () [0x00000] at FSpot.App.HandleOrganize () [0x00000] at FSpot.App.Organize () [0x00000] at FSpot.Driver.Main (System.String[] args) [0x00000]
Created attachment 162517 [details] [review] Fix folder tree parsing for broken Uris. Thanks to Mike for helping to figure this out.
Attachment 162517 [details] pushed as 70abe8e - Fix folder tree parsing for broken Uris. Should be fixed in master, please reopen if you still encounter it. Thanks for reporting this!