[Bug 359407] Re: Jaunty icedtea6-plugin doesn’t work in Firefox 3.5

TJ ubuntu at tjworld.net
Thu Sep 17 16:46:53 UTC 2009


Confirmation that a trivial patch solves this issue.

ICEDTEAPLUGIN_DEBUG=1 firefox-3.5
...
ICEDTEA PLUGIN: Instance::StartAppletviewer
ICEDTEA PLUGIN: get component manager
ICEDTEA PLUGIN: create local file
ICEDTEA PLUGIN: init with path
ICEDTEA PLUGIN: create process
ICEDTEA PLUGIN: init process
ICEDTEA PLUGIN: clearing old input fifo (if any): /home/tj/.icedteaplugin/icedtea-appletviewer-to-plugin
ICEDTEA PLUGIN: creating input fifo: /home/tj/.icedteaplugin/icedtea-appletviewer-to-plugin
ICEDTEA PLUGIN: created input fifo: /home/tj/.icedteaplugin/icedtea-appletviewer-to-plugin
ICEDTEA PLUGIN: got confirmation that appletviewer is running
ICEDTEA PLUGIN: clearing old output fifo (if any): /home/tj/.icedteaplugin/icedtea-plugin-to-appletviewer
ICEDTEA PLUGIN: creating output fifo: /home/tj/.icedteaplugin/icedtea-plugin-to-appletviewer
ICEDTEA PLUGIN: created output fifo: /home/tj/.icedteaplugin/icedtea-plugin-to-appletviewer
ICEDTEA PLUGIN: run process
Listening for transport dt_socket at address: 8787
ICEDTEA PLUGIN: Instance::StartAppletviewer return
...

In summary, The Jaunty version of openjdk-6 IcedTeaPlugin is built
against the xulrunner 1.9.0.x dev headers (which Firefox 3.0.x uses).
IcedTeaPlugin creates an instance of nsIProcess using the Interface ID
(IID) declared in those headers. The nsIProcess object then loads and
manages the JVM in another process.

Firefox 3.5 uses xulrunner 1.9.1.x, which has 'unfrozen' the nsIProcess
interface definition and consequently changed the IID. Therefore when
xulrunner 1.9.1 is asked to create the nsIProcess object by
IcedTeaPlugin it fails since the old xulrunner 1.9.0 IID doesn't exist.

I've patched IcedTeaPlugin.cc to query the IID of nsIProcess at run-time
rather than use the build-time definition. I've tested the same
IcedTeaPlugin.so with Firefox 3.0 and 3.5 and both work correctly,
starting the applet.

I've found there is a subsequent exception once the Sun Java test applet
is running which needs a separate investigation:

ICEDTEA PLUGIN: Instance::ConsumeMsgFromJVM
received message: instance 1 status exception: java.lang.StringIndexOutOfBoundsException: String index out of range: 8.
Processing complete
ICEDTEA PLUGIN: Instance::ConsumeMsgFromJVM return

However, other sophisticated Java applets are working fine on Firefox
3.5 now.

I will attach a patch and debdiff with the fix and publish a fixed
version of openjdk-6 to my PPA.

Because it takes so long to build openjdk and its a lot of overkill for
building just IcedTeaPlugin I'll also build just the IcedTeaPlugin.so
for i386 and amd64 and host them where they can easily be tested by
backing up the current shared object:

/usr/lib/jvm/java-6-openjdk/jre/lib/{i386,amd64}/IcedTeaPlugin.so

and replacing it with the new one.

-- 
Jaunty icedtea6-plugin doesn’t work in Firefox 3.5
https://bugs.launchpad.net/bugs/359407
You received this bug notification because you are a member of Mozilla
Bugs, which is subscribed to Mozilla Firefox.




More information about the Ubuntu-mozillateam-bugs mailing list