Public bug reported:

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.

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
ProcVersionSignature: Ubuntu 2.6.31-14.48-generic
SourcePackage: gnome-do
Uname: Linux 2.6.31-14-generic x86_64

** Affects: gnome-do (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug docky

-- 
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

Reply via email to