Created attachment 528334 [details] Full stack trace Description of problem: Azureus fails to start because: "Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: no swt-gnome-gtk-3735 in java.library.path no swt-gnome-gtk in java.library.path " Version-Release number of selected component (if applicable): 4.6.0.4 (latest in Fedora 16) How reproducible: every time Steps to Reproduce: 1. Install azureus 2. try launching azureus ("azureus" in command line, or through gnome menu) 3. fails to launch with stacktrace Actual results: Azureus starts Expected results: Azureus fails to start. Additional info: Full stack trace attached
Had a closer look at this today, and I think I'll need some help here... Just like Aleksandar pointed out, Display.getCurrent() (called from the SWTThread constructor) returns null. But Display.getDefault() also returns null. Which is weird. And even so, I don't even see why that causes azureus to fall back on (the deprecated) libswt-gnome-gtk. Any clues?
Discussing this with Aleksandar, this seem to be a bug in SWT rather then in eclipse, the attached test case (courtesy of Aleksandar) reproduces the problem. Re-assigning to eclipse
Created attachment 530289 [details] reproducer compile with javac -classpath /usr/lib64/eclipse/swt.jar Test.java [djuran@f16 tmp]$ java -classpath /usr/lib64/eclipse/swt.jar:. Test Gtk-Message: Failed to load module "pk-gtk-module" Gtk-Message: Failed to load module "canberra-gtk-module" Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: no swt-gnome-gtk-3735 in java.library.path no swt-gnome-gtk in java.library.path Can't load library: /home/djuran/.swt/lib/linux/x86_64/libswt-gnome-gtk-3735.so Can't load library: /home/djuran/.swt/lib/linux/x86_64/libswt-gnome-gtk.so at org.eclipse.swt.internal.Library.loadLibrary(Library.java:285) at org.eclipse.swt.internal.Library.loadLibrary(Library.java:194) at org.eclipse.swt.internal.gnome.GNOME.<clinit>(GNOME.java:21) at org.eclipse.swt.program.Program.gnome_24_launch(Program.java:397) at org.eclipse.swt.program.Program.launch(Program.java:1086) at org.eclipse.swt.program.Program.launch(Program.java:1042) at Test.main(Test.java:9)
The fact that it's attempting to use from ~/.swt, it seems like the initializer didn't run at build time (or it ran and SWT's bundle has changed since installation). Any thoughts on that, Sami?
This has nothing to do with the initializer. The initializer is eclipse specific and doesn't affect normal swt applications.
Some further test (suggested by Aleksandar) Changing the test program to use Program.launch("/tmp/foo"); works (or at least opens /tmp/foo with emacs) _IF_ /tmp/foo exists. If /tmp/foo does not exist, the same error (trying to load swt-gnome-gtk-3735) occurs. gvfs-open http://dir.bg works fine, at least after I installed firefox Setting GIO_USE_GVFS=gvfs doesn't seem to have any effect.
David, Can you try with latest rawhide build? If this fixes the problem I'll backport to F16.
It does, with eclipse-3.7.0-9 azureus now at least starts up.
David, Please test https://admin.fedoraproject.org/updates/eclipse-3.7.1-1.fc16
Problem solved with eclipse-swt-3.7.1-1.fc16.x86_64.rpm, thanks !
Thanks for verifying.
*** Bug 755591 has been marked as a duplicate of this bug. ***