Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 361680

Summary: StackOverflowError in org.eclipse.internal.win32.OS.DispatchmessageW
Product: [Eclipse Project] Platform Reporter: Ian Tewksbury <itewksbu>
Component: SWTAssignee: Platform-SWT-Inbox <platform-swt-inbox>
Status: RESOLVED NOT_ECLIPSE QA Contact:
Severity: major    
Priority: P3 CC: eclipse.felipe, grant_gayed, nsand.dev
Version: 3.6.2   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
Sample project none

Description Ian Tewksbury CLA 2011-10-21 11:44:56 EDT
STEPS:
1. import the attached project
2. expand Dojo15/WebContent
3. Right click "busted.html" and say "Open With -> Web Browser"

RESULTS:
* the page will open and start to render, then flash a few times, go blank and then an error dialog will pop up.
* inspecting the log I find the exception listed below

OTHER:
* i seem to only be able to reproduce this on a file that contains a dojox.grid.DataGrid widget inside of a dijit.layout.ContentPane widget

java/io/WinNTFileSystem.getBooleanAttributes
java/io/File.exists
org/eclipse/ui/internal/browser/WebBrowserUtil.addFoundBrowsers
org/eclipse/ui/internal/browser/BrowserManager.setupDefaultBrowsers
org/eclipse/ui/internal/browser/BrowserManager.loadBrowsers
org/eclipse/ui/internal/browser/BrowserManager.getCurrentWebBrowser
com/ibm/etools/webtools/debug/browser/BrowserSupport.getCurrentBrowserDescriptor
com/ibm/etools/webtools/debug/browser/BrowserSupport$1.run
org/eclipse/swt/widgets/Synchronizer.syncExec
org/eclipse/ui/internal/UISynchronizer.syncExec
org/eclipse/swt/widgets/Display.syncExec
com/ibm/etools/webtools/debug/browser/BrowserSupport.createBrowser
org/eclipse/ui/internal/browser/WorkbenchBrowserSupport.createBrowser
org/eclipse/wst/server/ui/internal/WebLaunchableClient.launch
org/eclipse/wst/server/core/internal/Client.launch
org/eclipse/wst/server/ui/internal/LaunchClientJob$1.run
org/eclipse/swt/widgets/RunnableLock.run
org/eclipse/swt/widgets/Synchronizer.runAsyncMessages
org/eclipse/swt/widgets/Display.runAsyncMessages
org/eclipse/swt/widgets/Display.readAndDispatch
org/eclipse/ui/internal/Workbench.runEventLoop
org/eclipse/ui/internal/Workbench.runUI
org/eclipse/ui/internal/Workbench.access$4
org/eclipse/ui/internal/Workbench$7.run
org/eclipse/core/databinding/observable/Realm.runWithDefault
org/eclipse/ui/internal/Workbench.createAndRunWorkbench
org/eclipse/ui/PlatformUI.createAndRunWorkbench
org/eclipse/ui/internal/ide/application/IDEApplication.start
org/eclipse/equinox/internal/app/EclipseAppHandle.run
org/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher.runApplication
org/eclipse/core/runtime/internal/adaptor/EclipseAppLauncher.start
org/eclipse/core/runtime/adaptor/EclipseStarter.run
org/eclipse/core/runtime/adaptor/EclipseStarter.run
sun/reflect/NativeMethodAccessorImpl.invoke0
sun/reflect/NativeMethodAccessorImpl.invoke
sun/reflect/DelegatingMethodAccessorImpl.invoke
java/lang/reflect/Method.invoke
org/eclipse/equinox/launcher/Main.invokeFramework
org/eclipse/equinox/launcher/Main.basicRun
org/eclipse/equinox/launcher/Main.run
Comment 1 Ian Tewksbury CLA 2011-10-21 11:57:01 EDT
Created attachment 205744 [details]
Sample project

Unfortunately a sample project with Dojo 1.5 already in it is to large to upload to bugzilla.  I have uploaded the project without dojo in it.

Please download dojo 1.5 from http://download.dojotoolkit.org/release-1.5.1/dojo-release-1.5.1-src.zip and import it into the attached project such that the folder structure looks like

Sample
* WebContent
* * dojo
* * * dojo
* * * dijit
* * * dojox
* * busted.html
Comment 2 Nick Sandonato CLA 2011-10-28 10:51:08 EDT
This is occurring in an adopter product and can trip up on very simple pages. Every time this occurs, the user is prompted to shutdown Eclipse, which can be burdensome when the user is unaware of what is causing the problem.

It does seem to be isolated to IE, however.

Also, Ian's stacktrace does not seem to be the correct one. What we're actually seeing is:

java.lang.StackOverflowError: operating system stack overflow
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Unknown Source)
	at org.eclipse.ui.internal.Workbench.runUI(Unknown Source)
	at org.eclipse.ui.internal.Workbench.access$4(Unknown Source)
	at org.eclipse.ui.internal.Workbench$7.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Unknown Source)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Unknown Source)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(Unknown Source)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(Unknown Source)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Unknown Source)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Unknown Source)
	at org.eclipse.equinox.launcher.Main.basicRun(Unknown Source)
	at org.eclipse.equinox.launcher.Main.run(Unknown Source)
Comment 3 Felipe Heidrich CLA 2011-10-28 16:11:13 EDT
looking at the stack it seems the crash happens before SWT is called
java/io/WinNTFileSystem.getBooleanAttributes
java/io/File.exists
org/eclipse/ui/internal/browser/WebBrowserUtil.addFoundBrowsers
org/eclipse/ui/internal/browser/BrowserManager.setupDefaultBrowsers
org/eclipse/ui/internal/browser/BrowserManager.loadBrowsers

Grant, any ideas ?
Comment 4 Nick Sandonato CLA 2011-10-28 16:20:14 EDT
(In reply to comment #3)
> looking at the stack it seems the crash happens before SWT is called
> java/io/WinNTFileSystem.getBooleanAttributes
> java/io/File.exists
> org/eclipse/ui/internal/browser/WebBrowserUtil.addFoundBrowsers
> org/eclipse/ui/internal/browser/BrowserManager.setupDefaultBrowsers
> org/eclipse/ui/internal/browser/BrowserManager.loadBrowsers
> 
> Grant, any ideas ?

Felipe,

Thanks for taking a look. The stack trace included in the original description is incorrect (copy/paste mistake). Please see the trace from comment 2.
Comment 5 Nick Sandonato CLA 2011-11-07 16:41:22 EST
I've talked with Grant, and it looks like this is an error that bubbles up from IE, even standalone: SCRIPT28: Out of stack space.

Because  of this, I'm resolving as NOT_ECLIPSE.