Bug 213194 - [Browser] setText crash with xulrunner 1.9 stream
Summary: [Browser] setText crash with xulrunner 1.9 stream
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.5   Edit
Hardware: PC Linux
: P3 critical with 1 vote (vote)
Target Milestone: 3.4 RC3   Edit
Assignee: Grant Gayed CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 227665 233841 235953 236699 238464 238676 238700 239209 239681 240052 243959 247298 260772 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-12-17 11:30 EST by Daniele CLA
Modified: 2009-08-11 11:40 EDT (History)
28 users (show)

See Also:
gheorghe: review+
carolynmacleod4: review+
Silenio_Quarti: review+


Attachments
patch (15.71 KB, patch)
2008-01-07 15:13 EST, Grant Gayed CLA
no flags Details | Diff
patch for latest nsIDocShell IID change (947 bytes, patch)
2008-05-27 14:16 EDT, Grant Gayed CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Daniele CLA 2007-12-17 11:30:24 EST
Build ID: I20071213-1700

Steps To Reproduce:
1. open a terminal
2. run eclipse
3. eclipse crashes miserably


More information:
Fresh, clean installation of 3.4M4 on Ubuntu Gutsy. 
running on jre 1.6.0_u3

della@della-desktop:~/programs/eclipse-3.4$ Exception in thread "Thread-1" org.eclipse.swt.SWTError: XPCOM error -2147467262
        at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:1566)
        at org.eclipse.swt.browser.Mozilla.setText(Mozilla.java:1770)
        at org.eclipse.swt.browser.Browser.setText(Browser.java:718)
        at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.generateDynamicContentForPage(BrowserIntroPartImplementation.java:249)
        at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.dynamicStandbyStateChanged(BrowserIntroPartImplementation.java:445)
        at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.doStandbyStateChanged(BrowserIntroPartImplementation.java:652)
        at org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation.standbyStateChanged(AbstractIntroPartImplementation.java:249)
        at org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation.standbyStateChanged(IntroPartPresentation.java:443)
        at org.eclipse.ui.intro.config.CustomizableIntroPart.standbyStateChanged(CustomizableIntroPart.java:264)
        at org.eclipse.ui.internal.ViewIntroAdapterPart$2.run(ViewIntroAdapterPart.java:74)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
        at org.eclipse.ui.internal.ViewIntroAdapterPart.setStandby(ViewIntroAdapterPart.java:70)
        at org.eclipse.ui.internal.ViewIntroAdapterPart$1.propertyChanged(ViewIntroAdapterPart.java:55)
        at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalPropertyChange(WorkbenchPartReference.java:374)
        at org.eclipse.ui.internal.WorkbenchPartReference.fireZoomChange(WorkbenchPartReference.java:539)
        at org.eclipse.ui.internal.PartPane.setZoomed(PartPane.java:343)
        at org.eclipse.ui.internal.PartStack.setZoomed(PartStack.java:1526)
        at org.eclipse.ui.internal.PartSashContainer.zoomIn(PartSashContainer.java:880)
        at org.eclipse.ui.internal.PartSashContainer.childRequestZoomIn(PartSashContainer.java:901)
        at org.eclipse.ui.internal.LayoutPart.requestZoomIn(LayoutPart.java:354)
        at org.eclipse.ui.internal.PartStack.setState(PartStack.java:1501)
        at org.eclipse.ui.internal.WorkbenchPage.setState(WorkbenchPage.java:3765)
        at org.eclipse.ui.internal.WorkbenchPage.toggleZoom(WorkbenchPage.java:3837)
        at org.eclipse.ui.internal.WorkbenchIntroManager.setIntroStandby(WorkbenchIntroManager.java:201)
        at org.eclipse.ui.internal.WorkbenchIntroManager.showIntro(WorkbenchIntroManager.java:136)
        at org.eclipse.ui.application.WorkbenchWindowAdvisor.openIntro(WorkbenchWindowAdvisor.java:173)
        at org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.openIntro(IDEWorkbenchWindowAdvisor.java:456)
        at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow.java:756)
        at org.eclipse.ui.internal.Workbench$21.runWithException(Workbench.java:1044)
        at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:130)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3312)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2985)
        at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:801)
        at org.eclipse.ui.internal.Workbench$25.runWithException(Workbench.java:1349)
        at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:130)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3312)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2985)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2301)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2211)
        at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:473)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:468)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:561)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:501)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1239)
Comment 1 Steve Northover CLA 2007-12-18 13:27:47 EST
We are running on Gutsy.  Is it the Java version?
Comment 2 Filippo Rossoni CLA 2007-12-19 21:43:49 EST
some problem with sun jre 1.5.0_13-b05

Comment 3 Filippo Rossoni CLA 2007-12-19 22:53:45 EST
(In reply to comment #2)
and with harmony-jre-r533000

Comment 4 Hauke Walden CLA 2007-12-20 04:25:16 EST
(In reply to comment #1)
> We are running on Gutsy.  Is it the Java version?
> 

Using Ubuntu 7.10, I have the same problem when starting up the 3.4M4.

Additional info: I'm using the SWT browser widget in one of my programs.
This does not work anymore since I upgraded to the 3.4M4 libs.
(I think the problem is the same as with eclipse failing to start - it just cannot open the browser widget.)

Steps to reproduce: Just try to run Snippet136.java.

It works when using:
   org.eclipse.swt.gtk.linux.x86_3.3.1.v3346i.jar
or
   org.eclipse.swt.gtk.linux.x86_3.3.2.v3347.jar

but is broken (at least with)
   org.eclipse.swt.gtk.linux.x86_3.4.0.v3422.jar

Maybe this issue should be moved to the SWT folks?

<political-statement-mode>
In general, I think the Browser support should be enhanced for Linux. I've read the FAQ that explains how to get the Browser widget running , but compared to how it works under Windows, it's pretty complicated : use Mozilla/Firefox/Xulrunner in version xxx with eclipse V.yyy, but if you have Eclipse Version zzz you must blabla and don't forget to set the Environment variable MOZILLA_FIVE_HOME and LD_LIBRARY_PATH and what else.

I understand that it's much easier for Windows because you can rely on the fact that practically on every Windows installation the IE will be available, but still ... the number of people who are just _using_ Linux (meaning, who are NOT Unix gurus) seems to be growing, and it would be great if these people (like myself :-) could get the same support as the Windows users get. I mean, would you ship an eclipse version for windows (which relies on having that browser support, e.g. for the help-system) and where the user would need to download additional software, apply some registry tweaks and so on? Don't think so ...

Ah, I know that 3.4M4 is just a milestone! But the same thing goes for the official 3.3.1 release. 3.3.1 does not crash on startup, but the browser support inside eclipse (like, clicking on a URL inside some java code on windows/eclipse will open a tab with the browser widget displaying the page, on  linux/eclipse this functionality is broken). I DO know that for some and maybe even most people this is working, but it's definatly NOT working "out-of-the-box" for me. And I also DO know that Ubuntu is not one of the officially supported platforms, but looking at distrowatch.com and compared to RedHat, I think it SHOULD be supported.
</political-statement-mode>

Maybe it would be a good idea to have something like a built-in wizard which guides the user in getting the browser widget going? I could search for installed browsers, suggest the "most-capable" one, could even allow the user to download things like XulRunner (Maybe even under windows?!?), and make all the settings that are necessary to get that thing going ?! I'm afraid I just don't have the necessary skills to write such a beast (otherwise, I would have that browser widget running here :-).

Anyway, crashing or failing silently is not an option, I think.

Ok, sorry, this has definatly grown larger than a bug report should get. I just did not know wherelse I should have given my five cents.
Comment 5 Hauke Walden CLA 2007-12-20 04:32:36 EST
Oops. Just one litte "t" missing, but an important one:
Down below, replace 
"I could search for installed browsers, suggest the ..." with
"IT could search for ...".

I didn't intend to volunteer to search for browsers on zillions of computers around the world ;-)

> 
> Maybe it would be a good idea to have something like a built-in wizard which
> guides the user in getting the browser widget going? I could search for
> installed browsers, suggest the "most-capable" one, could even allow the user
> to download things like XulRunner (Maybe even under windows?!?), and make all
> the settings that are necessary to get that thing going ?! I'm afraid I just
> don't have the necessary skills to write such a beast (otherwise, I would have
> that browser widget running here :-).
> 
Comment 6 Hauke Walden CLA 2007-12-20 05:55:42 EST
I found a workaround so I can at least start using 3.4M4: if you create your workspace with a 3.3.1 eclipse, it opens the welcome page (which seems to use the Browser widget). If you open it again, the welcome page isn't shown anymore, so you can use the 3.4M4.
This surely does not solve the bug, but it might help other people to workaround this bug.
Comment 7 Grant Gayed CLA 2008-01-03 14:53:31 EST
The trace indicates that it's not finding the expected nsIDocShell interface.  Please try the following:

- get eclipse running (comment 6)
- run the following swt snippet, which will print a line to stdout indicating the location of the native renderer being used:

public class Main {
    public static void main(String[] args) {
        Device.DEBUG = true;
        final Display display = new Display();
        final Shell shell = new Shell(display);
        new Browser(shell, SWT.NONE);
        display.dispose();
    }
}

- if the output indicates a seamonkey or firefox, what version is it (run the app, Help->About)?
- if the output indicates a xulrunner, run xulrunner -v to get its version
Comment 8 Filippo Rossoni CLA 2008-01-06 13:58:27 EST
(In reply to comment #7)
on Ubuntu Hardy 

XULRunner path: /usr/lib/xulrunner-1.9b3pre/libxpcom.so


~$ xulrunner -v
Mozilla XULRunner 1.9b3pre - 2008010221

Comment 9 Grant Gayed CLA 2008-01-07 11:23:09 EST
I see that the nsIDocShell interface has changed again in the xulrunner 1.9 stream (multiple times in fact).  Nice.

The xulrunner 1.9 stream is still a work in progress though, so I wouldn't think that this would be the xulrunner version on gutsy (I noticed that hardy was specified in comment 8).
Comment 10 Grant Gayed CLA 2008-01-07 15:13:45 EST
Created attachment 86344 [details]
patch

This patch fixes the problem when running with the latest xulrunner nightly.  It's not committed yet because the xpcom interface could still change, though hopefully it won't not since their proposed code freeze is coming up soon.
Comment 11 Filippo Rossoni CLA 2008-01-11 20:54:29 EST
thanks this patch fix the problem
Comment 12 Grant Gayed CLA 2008-01-29 15:20:17 EST
fix released > 0129
Comment 13 Casey Watson CLA 2008-04-17 18:02:06 EDT
*** Bug 227665 has been marked as a duplicate of this bug. ***
Comment 14 Hugues Malphettes CLA 2008-05-27 11:58:32 EDT
This exact stack trace happens on my machine with Ganymede-RC1 packages after I updated my ubuntu-hardy to firefox-rc1.

I think nsIDocShell has been changed again.
The NS_IDOCSHELL_IID_STR might need to be updated:

http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&whitespace_mode=show&file=nsIDocShell.idl&branch=&root=/cvsroot&subdir=mozilla/docshell/base&command=DIFF_FRAMESET&rev1=1.97&rev2=1.98

Here is the version of xul runner reported on my system:
Mozilla XULRunner 1.9 - 2008052515
Comment 15 Grant Gayed CLA 2008-05-27 13:20:33 EDT
*** Bug 233841 has been marked as a duplicate of this bug. ***
Comment 16 Grant Gayed CLA 2008-05-27 14:16:08 EDT
Created attachment 102207 [details]
patch for latest nsIDocShell IID change

re: comment 14

Thanks for the pointer to this.  It's strange that nsIDocShell's IID changed though its api didn't, but https://bugzilla.mozilla.org/show_bug.cgi?id=430624#c11 indicates that this was intentional.  An updated patch is attached.
Comment 17 Grant Gayed CLA 2008-05-27 16:58:54 EDT
fixed > 0527

So as of tomorrow Browser.setText() will no longer work with xulrunner 1.9 betas from before May 3rd.  However, working with the upcoming xulrunner 1.9 release is what matters.
Comment 18 Hugues Malphettes CLA 2008-05-27 17:19:54 EDT
Thanks a lot!

Just a note that firefox3-beta5 with the outdated xul-runner is the default browser for the latest ubuntu.
Hopefully firefox will release next month and ubuntu will update firefox so no-one will notice this.
Comment 19 Claudio Nieder CLA 2008-06-02 16:37:52 EDT
I found this bug after having problem with eclipse since today I ugraded it to 3.4RC3. I'm not sure if I don't bother you for nothing, but as it says Resolved, Target 3.4 Milestone RC3 you might be interested to know it still can happen.

In my case it happens right after the eclipse splash screen disappears. This is what is written when I start eclipse with -consoleLog enabled. The first exception happens before the splash screen appears but seams not to be of a problem. The XPCOM error appears after the splash screen disappears. A small window with title Eclipse is openend which has no content and at the same time the exception is printed. Here the whole output.


$ /usr/local/java/eclipse/eclipse -clean -consoleLog -data /home/claudio/EclipseWorkspace
!SESSION 2008-06-02 20:21:48.723 -----------------------------------------------
eclipse.buildId=I20080530-1730
java.version=1.6.0_06
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86 -clean -consoleLog -data /home/claudio/EclipseWorkspace

!ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2008-06-02 20:21:52.803
!MESSAGE Error occurred while loading repository at file:/home/claudio/.eclipse/org.eclipse.platform_3.4.0_270189880/.
!STACK 1
org.eclipse.equinox.internal.provisional.p2.core.ProvisionException: No repository found at file:/home/claudio/.eclipse/org.eclipse.platform_3.4.0_270189880/.eclipseextension
        at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:455)
        at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:426)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.loadMetadataRepository(Activator.java:82)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.synchronizeConfiguration(PlatformXmlListener.java:191)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.PlatformXmlListener.stopPoll(PlatformXmlListener.java:120)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.stopPoll(DirectoryWatcher.java:172)
        at org.eclipse.equinox.internal.provisional.p2.directorywatcher.DirectoryWatcher.poll(DirectoryWatcher.java:109)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.watchConfiguration(Activator.java:449)
        at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:159)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:1009)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:1003)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:984)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:355)
        at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1074)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:616)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:508)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:299)
        at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:489)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:211)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:321)
!SUBENTRY 1 org.eclipse.equinox.p2.metadata.repository 0 1000 2008-06-02 20:21:52.823
!MESSAGE No repository found at file:/home/claudio/.eclipse/org.eclipse.platform_3.4.0_270189880/.eclipseextension

!ENTRY org.eclipse.osgi 4 0 2008-06-02 20:22:08.370
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: XPCOM error -2147467262
        at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:1597)
        at org.eclipse.swt.browser.Mozilla.setText(Mozilla.java:1820)
        at org.eclipse.swt.browser.Browser.setText(Browser.java:733)
        at org.eclipse.jdt.internal.ui.infoviews.JavadocView.doSetInput(JavadocView.java:927)
        at org.eclipse.jdt.internal.ui.infoviews.JavadocView.refresh(JavadocView.java:775)
        at org.eclipse.jdt.internal.ui.infoviews.JavadocView.setBackground(JavadocView.java:762)
        at org.eclipse.jdt.internal.ui.infoviews.AbstractInfoView.inititalizeColors(AbstractInfoView.java:363)
        at org.eclipse.jdt.internal.ui.infoviews.AbstractInfoView.createPartControl(AbstractInfoView.java:226)
        at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:371)
        at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:230)
        at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
        at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:306)
        at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:531)
        at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
        at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
        at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
        at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
        at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)
        at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:668)
        at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:576)
        at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:568)
        at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:271)
        at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:964)
        at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2593)
        at org.eclipse.ui.internal.WorkbenchWindow$25.run(WorkbenchWindow.java:2869)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
        at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2850)
        at org.eclipse.ui.internal.WorkbenchWindow$19.runWithException(WorkbenchWindow.java:2167)
        at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3375)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
        at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
        at org.eclipse.ui.internal.Workbench$27.runWithException(Workbench.java:1361)
        at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3375)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2293)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:112)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1236)


I'm using Ubuntu 8.04 and the xulrunner version is:

$ xulrunner -v
Mozilla XULRunner 1.9b5 - 2008050509


Comment 20 Hugues Malphettes CLA 2008-06-02 16:42:20 EDT
The stack trace you are showing is expected: you are running the version of xul-runner setup by default by ubuntu-hardy: 1.9b5. b5 stands for beta 5.

If you want to avoid this problem you need to update to firefox-rc1 or more recent.
Here is what I did on my own ubuntu to do that:
http://icehot.wordpress.com/2008/05/20/how-to-install-firefox-3-rc1-in-ubuntu-hardy/

Comment 21 Grant Gayed CLA 2008-06-02 16:52:43 EDT
Right, this is also summarized in bug 235020.
Comment 22 David Carver CLA 2008-06-05 23:22:39 EDT
*** Bug 235953 has been marked as a duplicate of this bug. ***
Comment 23 Kevin Barnes CLA 2008-06-11 15:51:15 EDT
*** Bug 236699 has been marked as a duplicate of this bug. ***
Comment 24 Carsten Pfeiffer CLA 2008-06-16 10:11:45 EDT
I'm facing these problems with Eclipse 3.4RC4, but only within a runtime workbench. In a normal workbench, the welcome page works fine, as do all those richt text hovers. However in a runtime workbench, I immediately get the exception when the welcome page is shown (which means, I cannot run any JUnit Plugin tests).

This is on Debian sid.

$ xulrunner -v
Mozilla XULRunner 1.8.1.14_0000000000
$ xulrunner-1.9  -v
Mozilla XULRunner 1.9 - 2008060909


org.eclipse.swt.SWTError: XPCOM error -2147467262
	at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:1597)
	at org.eclipse.swt.browser.Mozilla.setText(Mozilla.java:1820)
	at org.eclipse.swt.browser.Browser.setText(Browser.java:733)
	at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.generateContentForPage(BrowserIntroPartImplementation.java:252)
	at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.dynamicStandbyStateChanged(BrowserIntroPartImplementation.java:451)
	at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.doStandbyStateChanged(BrowserIntroPartImplementation.java:658)
	at org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation.standbyStateChanged(AbstractIntroPartImplementation.java:249)
	at org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation.standbyStateChanged(IntroPartPresentation.java:443)
	at org.eclipse.ui.intro.config.CustomizableIntroPart.standbyStateChanged(CustomizableIntroPart.java:266)
	at org.eclipse.ui.internal.ViewIntroAdapterPart$2.run(ViewIntroAdapterPart.java:74)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
	at org.eclipse.ui.internal.ViewIntroAdapterPart.setStandby(ViewIntroAdapterPart.java:70)
	at org.eclipse.ui.internal.ViewIntroAdapterPart$1.propertyChanged(ViewIntroAdapterPart.java:55)
	at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalPropertyChange(WorkbenchPartReference.java:374)
	at org.eclipse.ui.internal.WorkbenchPartReference.fireZoomChange(WorkbenchPartReference.java:539)
	at org.eclipse.ui.internal.PartPane.setZoomed(PartPane.java:349)
	at org.eclipse.ui.internal.PartStack.setZoomed(PartStack.java:1526)
	at org.eclipse.ui.internal.PartSashContainer.zoomIn(PartSashContainer.java:884)
	at org.eclipse.ui.internal.PartSashContainer.childRequestZoomIn(PartSashContainer.java:905)
	at org.eclipse.ui.internal.LayoutPart.requestZoomIn(LayoutPart.java:354)
	at org.eclipse.ui.internal.PartStack.setState(PartStack.java:1501)
	at org.eclipse.ui.internal.WorkbenchPage.setState(WorkbenchPage.java:3836)
	at org.eclipse.ui.internal.WorkbenchPage.toggleZoom(WorkbenchPage.java:3908)
	at org.eclipse.ui.internal.WorkbenchIntroManager.setIntroStandby(WorkbenchIntroManager.java:201)
	at org.eclipse.ui.internal.WorkbenchIntroManager.showIntro(WorkbenchIntroManager.java:136)
	at org.eclipse.ui.application.WorkbenchWindowAdvisor.openIntro(WorkbenchWindowAdvisor.java:173)
	at org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.openIntro(IDEWorkbenchWindowAdvisor.java:458)
	at org.eclipse.ui.internal.WorkbenchWindow.open(WorkbenchWindow.java:777)
	at org.eclipse.ui.internal.Workbench$22.runWithException(Workbench.java:1041)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3375)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
	at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
	at org.eclipse.ui.internal.Workbench$27.runWithException(Workbench.java:1361)
	at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3375)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2298)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2203)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:112)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Comment 25 Grant Gayed CLA 2008-06-16 10:41:45 EDT
re: comment 24

Can you run the snippet from comment 7 to see what it prints to stdout?
Comment 26 Carsten Pfeiffer CLA 2008-06-16 11:06:06 EDT
(In reply to comment #25)
> Can you run the snippet from comment 7 to see what it prints to stdout?

Hmm, in both the plain workbench and the runtime workbench, it's this:

XULRunner path: /usr/lib/xulrunner-1.9/libxpcom.so

$ /usr/lib/xulrunner-1.9/xulrunner -v
Mozilla XULRunner 1.9 - 2008060909
Comment 27 Carsten Pfeiffer CLA 2008-06-16 11:12:08 EDT
(In reply to comment #26)
As a workaround, renaming /usr/lib/xulrunner-1.9 out of the way works (the 1.8.1 version in /usr/lib/xulrunner is picked up).
Comment 28 Grant Gayed CLA 2008-06-16 12:23:00 EDT
I've confirmed in the latest xulrunner nightly that the nsIDocShell interface has not changed, and I tried the runtime workbench with a similar xulrunner build as you have (just off by a few days) and it worked.

It doesn't make sense that the nsIDocShell interface would be found for one of your downloads but not the other, since it appears that the same xulrunner is being used for both.  Is there any possibility that your runtime eclipse is not 3.4RC4?
Comment 29 Carsten Pfeiffer CLA 2008-06-16 12:26:12 EDT
(In reply to comment #28)
> Is there any possibility that your runtime eclipse is not 3.4RC4?

Wow, what kind of magician are you? You are correct! I didn't even know this was possible. Now I need to figure out how to fix this...

Thanks for your help!


Comment 30 Steve Northover CLA 2008-06-16 16:38:56 EDT
> Wow, what kind of magician are you? 

The magic kind!
Comment 31 Carsten Pfeiffer CLA 2008-06-17 05:03:47 EDT
(In reply to comment #28)
> Is there any possibility that your runtime eclipse is not 3.4RC4?

FWIW, the reason was me using the -configuration commandline parameter, which seems to cause problems with the target platform configuration, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=235336).

Comment 32 Mark Russell CLA 2008-06-25 20:04:01 EDT
*** Bug 238464 has been marked as a duplicate of this bug. ***
Comment 33 Grant Gayed CLA 2008-06-27 09:44:09 EDT
*** Bug 238700 has been marked as a duplicate of this bug. ***
Comment 34 Grant Gayed CLA 2008-06-27 13:12:32 EDT
*** Bug 238676 has been marked as a duplicate of this bug. ***
Comment 35 Grant Gayed CLA 2008-07-03 10:01:26 EDT
*** Bug 239209 has been marked as a duplicate of this bug. ***
Comment 36 Sean Burlington CLA 2008-07-05 10:39:48 EDT
*** Bug 239681 has been marked as a duplicate of this bug. ***
Comment 37 Bogdan Gheorghe CLA 2008-07-15 14:43:30 EDT
*** Bug 240052 has been marked as a duplicate of this bug. ***
Comment 38 Tomasz Zarna CLA 2008-08-13 04:29:53 EDT
*** Bug 243959 has been marked as a duplicate of this bug. ***
Comment 39 Boris Bokowski CLA 2008-09-16 10:26:40 EDT
*** Bug 247298 has been marked as a duplicate of this bug. ***
Comment 40 Remy Suen CLA 2009-01-12 16:38:53 EST
*** Bug 260772 has been marked as a duplicate of this bug. ***
Comment 41 Andrew Overholt CLA 2009-03-30 09:58:07 EDT
Seeing as 1.9.1 looks like it will have a changed interface (see [1] and [2]), what can we do for 3.5?

And what about 3.4.x?  Is the patch attached to this bug sufficient for back-porting, Grant?

[1]
https://bugzilla.redhat.com/show_bug.cgi?id=483832#c13

[2]
http://groups.google.com/group/mozilla.dev.platform/browse_thread/thread/ebea2ae035d14bd9
Comment 42 Grant Gayed CLA 2009-03-30 10:12:40 EDT
The patch that's here is for xulrunner 1.9.0.  The xulrunner 1.9.1 interface change is being tracked in bug 268651.  A fix for this is waiting on xulrunner 1.9.1 to ship, or at least freeze its interfaces for 1.9.1.  I'm going to re-close this bug for xulrunner 1.9.0 so that 1.9.1 is being tracked in one place.

Regarding getting out of this cycle of xulrunner interface change pain, I'm looking into alternative ways of setting browser content.  There may be a way that no longer relies on nsIDocShell, but unfortunately appears to ignore css styles, so for instance the eclipse intro page would look completely wrong.  It may be a better fall-back case than throwing an exception when all nsIDocShell attempts fail though.
Comment 43 Charles Goodwin CLA 2009-07-10 13:55:54 EDT
(In reply to comment #41)
> And what about 3.4.x?  Is the patch attached to this bug sufficient for
> back-porting, Grant?

4 months gone by and 3.4.x users are forgotten about! :-(