** Description changed: Binary package hint: gnome-do When I'm adding Transmission to the Docky items, Do won't start the next time. Here is the snippet of --debug (I'm ataching the whole output, but that's the part that shows the problem): [Error 10:39:29.458] Error in RunOnMainThread: Path is too long. Path: BitTorrent клиент Transmission: Скачивайте и обменивайтесь файлами в сети BitTorrent (Do.Universe.Linux.ApplicationItem) - [Debug 10:39:29.460] at System.IO.Directory.Exists (System.String path) [0x00000] - at Docky.Core.Default.ItemsService.MaybeCreateCustomItem (System.String& identifier) [0x00000] - at Docky.Core.Default.ItemsService.InternalAddItemToDock (System.String identifier, Int32 position) [0x00000] - at Docky.Core.Default.ItemsService.UpdateItems () [0x00000] - at Docky.Core.Default.ItemsService.HandleUniverseInitialized (System.Object sender, System.EventArgs e) [0x00000] - at (wrapper delegate-invoke) System.EventHandler:invoke_void__this___object_EventArgs (object,System.EventArgs) - at Do.Core.UniverseManager.<InitializeAsync>m__1E () [0x00000] - at Do.Platform.ApplicationService+<RunOnMainThread>c__AnonStorey10.<>m__28 (System.Object sender, System.EventArgs e) [0x00000] + [Debug 10:39:29.460] at System.IO.Directory.Exists (System.String path) [0x00000] + at Docky.Core.Default.ItemsService.MaybeCreateCustomItem (System.String& identifier) [0x00000] + at Docky.Core.Default.ItemsService.InternalAddItemToDock (System.String identifier, Int32 position) [0x00000] + at Docky.Core.Default.ItemsService.UpdateItems () [0x00000] + at Docky.Core.Default.ItemsService.HandleUniverseInitialized (System.Object sender, System.EventArgs e) [0x00000] + at (wrapper delegate-invoke) System.EventHandler:invoke_void__this___object_EventArgs (object,System.EventArgs) + at Do.Core.UniverseManager.<InitializeAsync>m__1E () [0x00000] + at Do.Platform.ApplicationService+<RunOnMainThread>c__AnonStorey10.<>m__28 (System.Object sender, System.EventArgs e) [0x00000] The string that is treated as path, is in fact the Comment in ru_RU locale of the Transmission .desktop file. Here is the .desktop file: #!/usr/bin/env xdg-open [Desktop Entry] Name=Transmission BitTorrent Client GenericName=BitTorrent Client Comment=Download and share files over BitTorrent Exec=transmission %F Icon=transmission Terminal=false TryExec=transmission Type=Application MimeType=application/x-bittorrent; Categories=Network;FileTransfer;P2P;GTK; X-Ubuntu-Gettext-Domain=transmission Icon[ru_RU]=transmission Name[ru_RU]=BitTorrent клиент Transmission Comment[ru_RU]=Скачивайте и обменивайтесь файлами в сети BitTorrent I've looked into Docky.Core.Default.ItemsService.MaybeCreateCustomItem() method: - AbstractDockItem MaybeCreateCustomItem (ref string identifier) - { - ItemDockItem customItem = null; - - if (identifier.StartsWith ("file://")) - identifier = identifier.Substring ("file://".Length); - - if (File.Exists (identifier) || Directory.Exists (identifier)) { - if (identifier.EndsWith (".desktop")) { + AbstractDockItem MaybeCreateCustomItem (ref string identifier) + { + ItemDockItem customItem = null; + + if (identifier.StartsWith ("file://")) + identifier = identifier.Substring ("file://".Length); + + if (File.Exists (identifier) || Directory.Exists (identifier)) { + if (identifier.EndsWith (".desktop")) { So that's where Directory.Exists fails because the path is very much incorrect - in fact, it obviously isn't a path. As far as I see, there are several possible fixes: 1) Add try..catch to code that treats the item identifier as path (the code snippet above) 2) Change the format of ItemsService_CustomItems so that each identifier there contains information about what type of item it represents: a file, a folder, a .desktop file or something other. - - OS: Ubuntu 9.10 x64 - Do version: 0.8.2+dfsg-1 - LANG: ru_RU.UTF-8 Cheers, Alex ProblemType: Bug Architecture: amd64 Date: Sat Nov 21 10:33:39 2009 DistroRelease: Ubuntu 9.10 NonfreeKernelModules: nvidia Package: gnome-do 0.8.2+dfsg-1 ProcEnviron: - LANG=ru_RU.UTF-8 - SHELL=/bin/bash + LANG=ru_RU.UTF-8 + SHELL=/bin/bash ProcVersionSignature: Ubuntu 2.6.31-14.48-generic SourcePackage: gnome-do Uname: Linux 2.6.31-14-generic x86_64
** Description changed: Binary package hint: gnome-do When I'm adding Transmission to the Docky items, Do won't start the next time. Here is the snippet of --debug (I'm ataching the whole output, but that's the part that shows the problem): [Error 10:39:29.458] Error in RunOnMainThread: Path is too long. Path: BitTorrent клиент Transmission: Скачивайте и обменивайтесь файлами в сети BitTorrent (Do.Universe.Linux.ApplicationItem) [Debug 10:39:29.460] at System.IO.Directory.Exists (System.String path) [0x00000] at Docky.Core.Default.ItemsService.MaybeCreateCustomItem (System.String& identifier) [0x00000] at Docky.Core.Default.ItemsService.InternalAddItemToDock (System.String identifier, Int32 position) [0x00000] at Docky.Core.Default.ItemsService.UpdateItems () [0x00000] at Docky.Core.Default.ItemsService.HandleUniverseInitialized (System.Object sender, System.EventArgs e) [0x00000] at (wrapper delegate-invoke) System.EventHandler:invoke_void__this___object_EventArgs (object,System.EventArgs) at Do.Core.UniverseManager.<InitializeAsync>m__1E () [0x00000] at Do.Platform.ApplicationService+<RunOnMainThread>c__AnonStorey10.<>m__28 (System.Object sender, System.EventArgs e) [0x00000] The string that is treated as path, is in fact the Comment in ru_RU locale of the Transmission .desktop file. Here is the .desktop file: #!/usr/bin/env xdg-open [Desktop Entry] Name=Transmission BitTorrent Client GenericName=BitTorrent Client Comment=Download and share files over BitTorrent Exec=transmission %F Icon=transmission Terminal=false TryExec=transmission Type=Application MimeType=application/x-bittorrent; Categories=Network;FileTransfer;P2P;GTK; X-Ubuntu-Gettext-Domain=transmission Icon[ru_RU]=transmission Name[ru_RU]=BitTorrent клиент Transmission Comment[ru_RU]=Скачивайте и обменивайтесь файлами в сети BitTorrent I've looked into Docky.Core.Default.ItemsService.MaybeCreateCustomItem() method: AbstractDockItem MaybeCreateCustomItem (ref string identifier) { ItemDockItem customItem = null; if (identifier.StartsWith ("file://")) identifier = identifier.Substring ("file://".Length); if (File.Exists (identifier) || Directory.Exists (identifier)) { if (identifier.EndsWith (".desktop")) { So that's where Directory.Exists fails because the path is very much incorrect - in fact, it obviously isn't a path. As far as I see, there are several possible fixes: 1) Add try..catch to code that treats the item identifier as path (the code snippet above) - 2) Change the format of ItemsService_CustomItems so that each identifier there contains information about what type of item it represents: a file, a folder, a .desktop file or something other. + 2) Change the format of ItemsService_CustomItems so that each identifier there contains information about what type of item it represents: a file, a folder, a .desktop file or something other, so that during initialization ItemsService doesn't end up probing all possible types of items for the identifier, but just get the correct type from identifier and create item. Cheers, Alex ProblemType: Bug Architecture: amd64 Date: Sat Nov 21 10:33:39 2009 DistroRelease: Ubuntu 9.10 NonfreeKernelModules: nvidia Package: gnome-do 0.8.2+dfsg-1 ProcEnviron: LANG=ru_RU.UTF-8 SHELL=/bin/bash ProcVersionSignature: Ubuntu 2.6.31-14.48-generic SourcePackage: gnome-do Uname: Linux 2.6.31-14-generic x86_64 ** Also affects: do Importance: Undecided Status: New -- Docky cannot initialize Transmisson custom item (Path too long) https://bugs.launchpad.net/bugs/486201 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs