This bug is marked as upstream from the Ubuntu bug report:
https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/359407
so I am reporting the solution.
I've discovered the cause and created a small patch to fix the issue
which is currently attached to the Ubuntu bug. I'm attaching the same
patch to this report.
The patch needs adding to debian/rules but as the Debian and Ubuntu
packages diverge slightly due to security CVE patches I won't attach a
debdiff; instead I've attached a second patch.
The Ubuntu changelog entry reads:
openjdk-6 (6b14-1.4.1-0ubuntu12~tj~ppa1j) jaunty; urgency=low
* Fix IcedTeaPlugin failure to start with xulrunner 1.9.1 (LP: #359407).
debian/rules: add patch icedtea-plugin-use-runtime-nsIProcess-IID.diff
-- TJ <[email protected]> Thu, 17 Sep 2009 18:00:00 +0100
--- IcedTeaPlugin.cc
+++ IcedTeaPlugin.cc
@@ -3824,6 +3824,8 @@ void IcedTeaPluginFactory::IcedTeaPluginFactory::WriteToJVM(nsCString& message)
*/
+#include <nsIInterfaceInfoManager.h>
+
nsresult
IcedTeaPluginFactory::StartAppletviewer ()
{
@@ -3845,9 +3847,15 @@ IcedTeaPluginFactory::StartAppletviewer ()
result = file->InitWithNativePath (nsCString (appletviewer_executable));
PLUGIN_CHECK_RETURN ("init with path", result);
+ // run-time query provided through nsIInterfaceInfoManager
+ nsCOMPtr<nsIInterfaceInfoManager> iim(do_GetService(NS_INTERFACEINFOMANAGER_SERVICE_CONTRACTID));
+ // get the run-time IID of nsIProcess (don't rely on a the build-time IID)
+ nsIID *nsIProcessIID;
+ iim->GetIIDForName("nsIProcess", &nsIProcessIID);
+
result = manager->CreateInstanceByContractID (NS_PROCESS_CONTRACTID,
nsnull,
- NS_GET_IID (nsIProcess),
+ *nsIProcessIID,
getter_AddRefs (applet_viewer_process));
PLUGIN_CHECK_RETURN ("create process", result);
--- debian/rules.1 2009-09-17 18:20:21.465667839 +0100
+++ debian/rules 2009-09-17 18:02:43.725667711 +0100
@@ -191,6 +191,7 @@
debian/patches/6804996.patch \
debian/patches/6804997.patch \
debian/patches/6804998.patch \
+ debian/patches/icedtea-plugin-use-runtime-nsIProcess-IID.diff \
debian/patches/securitypatches-2009-08.diff
# debian/patches/gcc-mtune-generic.diff \