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

Bug 342538

Summary: SWTException when creating a new extension point
Product: [Eclipse Project] PDE Reporter: Ankur Sharma <ankur_sharma>
Component: UIAssignee: PDE-UI-Inbox <pde-ui-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: daniel_megert, dash.alpha, remy.suen
Version: 3.7   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Ankur Sharma CLA 2011-04-12 06:51:16 EDT
Steps to repro-

1. Create a new plug-in project outside workspace. That is, uncheck default location on the new plugin wizard and provide a location which is outside the workspace.

2. The manifest editor will open. Go to ext. pt. page. Click Add and create a new ext. pt. Let the open schema editor check be selected.

SWTException is thrown as editor open.

Reproducible : Always



eclipse.buildId=I20110406-1223
java.fullversion=JRE 1.6.0 IBM J9 2.4 Windows XP x86-32 jvmwi3260sr7-20091214_49398 (JIT enabled, AOT enabled)
J9VM - 20091214_049398
JIT  - r9_20091123_13891
GC   - 20091111_AA
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86

Error
Tue Apr 12 16:18:30 IST 2011
Unhandled event loop exception

org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Widget is disposed)
	at org.eclipse.swt.SWT.error(SWT.java:4277)
	at org.eclipse.swt.SWT.error(SWT.java:4192)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4138)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3755)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	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:344)
	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:48)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:600)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: org.eclipse.swt.SWTException: Widget is disposed
	at org.eclipse.swt.SWT.error(SWT.java:4277)
	at org.eclipse.swt.SWT.error(SWT.java:4192)
	at org.eclipse.swt.SWT.error(SWT.java:4163)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
	at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:340)
	at org.eclipse.swt.widgets.Label.setText(Label.java:388)
	at org.eclipse.jface.wizard.ProgressMonitorPart.updateLabel(ProgressMonitorPart.java:367)
	at org.eclipse.jface.wizard.ProgressMonitorPart.subTask(ProgressMonitorPart.java:358)
	at org.eclipse.jface.wizard.WizardDialog$4.subTask(WizardDialog.java:707)
	at org.eclipse.jface.operation.AccumulatingProgressMonitor$Collector.run(AccumulatingProgressMonitor.java:94)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	... 22 more
Comment 1 David Henderson CLA 2011-04-21 13:23:29 EDT
I've seen what appears to be the same exception trace thrown in Eclipse 3.6 (20100617-1415) when using a Wizard (in a WizardDialog) where I call "getContainer().run(true, true, runnable)" multiple times with different runnables.  Sometimes after the 2nd runnable is run in this way, the exception will be thrown; other times it completes normally.
Comment 2 David Henderson CLA 2011-04-21 14:39:33 EDT
(In reply to comment #1)
> I've seen what appears to be the same exception trace thrown in Eclipse 3.6
> (20100617-1415) when using a Wizard (in a WizardDialog) where I call
> "getContainer().run(true, true, runnable)" multiple times with different
> runnables.  Sometimes after the 2nd runnable is run in this way, the exception
> will be thrown; other times it completes normally.

I think it's important to note that the an AccumulatingProgressMonitor is being used (from the stack trace).  I suspect that when the monitor does an asyncExec() to update the UI (e.g. in setTaskName()), it's possible that the WizardDialog gets closed before the runnable runs?
Comment 3 Dani Megert CLA 2014-06-03 07:15:41 EDT

*** This bug has been marked as a duplicate of bug 401741 ***