I can confirm that on a debian lenny..

My specs are:
 linux kernel: 2.6.26-1-amd64
 gnome: 2.22.3
 gnome-splashscreen-manager: 0.2-12(testing)

I am not so familiar with ruby but i tried to find out what happened and
i think that the problem is on the download_pixbuf method of the
splash_screen.rb script. The loader throws a Gdk::PixbufError if the
file is not a correct image file (from a corrupted download maybe) and
this exception is unhandled. This method is used by the create_thumbnail
method to read the image and create the thumbnail for the program's main
window.

So because the MainWindow.rb constructor at start reads the
#{Home_dir}/#{Gnome_dir}/splash-screens.xml and creates the thumbnails
of the image files, it goes down..

You can reproduce it very easy, just add a <splash_screen> entry at
#{Home_dir}/#{Gnome_dir}/splash-screens.xml file and touch the file you
entered for filename in the entry. The file is not a correct image file
and the whole thing will fail.

I think that the solution is pretty simple but I 'm a java developer at
most and not at all familiar with ruby (so maybe there is a more
sophisticated way to handle this situation), what I did to fix it is:

1) changed the splash_screens.rb script at line 190 to add an exception handler 
and return nil on error:
old code snippet:
        loader = Gdk::PixbufLoader.new
        open(url) { |f|
        loader.last_write(f.read)
        }

new code snippet:
        begin
                loader = Gdk::PixbufLoader.new
                open(url) { |f|
                loader.last_write(f.read)
                }
        rescue
                puts "Error in image file format: "+url

                return nil
        end

2) now edit the splash_screens.rb again into method create_thumbnail (line 205 
with the new code snippet):
add between pixbuf = download_pixbuf(url) and pixbuf.scale(130, 90, 
Gdk::Pixbuf::INTERP_BILINEAR) this code snippet:
      if (pixbuf == nil)
            return nil
      end

and you are ok..

now the reload_splash_screens method that runs at start of the program
will load the thumbnails and every nil thumbnail will be deleted from
your #{Home_dir}/#{Gnome_dir}/splash-screens.xml file with a
notification message at standard output to delete the image file
manually from your filesystem.

thats all, sorry for my verbosity..
mehiel

-- 
gnome-splashscreen-manager crash on start
https://bugs.launchpad.net/bugs/199229
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