Community
Participate
Working Groups
Version: 3.7.0 Build id: I20110114-1330 Running the Ant UI tests I got the following in the log: !ENTRY org.eclipse.ui 4 4 2011-01-24 10:34:06.617 !MESSAGE An internal error has occurred. !STACK 0 org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:4185) at org.eclipse.swt.SWT.error(SWT.java:4100) at org.eclipse.swt.SWT.error(SWT.java:4071) at org.eclipse.swt.widgets.Widget.error(Widget.java:466) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:403) at org.eclipse.swt.widgets.Control.setRedraw(Control.java:4076) at org.eclipse.debug.internal.ui.views.variables.details.DetailPaneProxy.setupPane(DetailPaneProxy.java:243) at org.eclipse.debug.internal.ui.views.variables.details.DetailPaneProxy.display(DetailPaneProxy.java:124) at org.eclipse.debug.internal.ui.views.variables.VariablesView.refreshDetailPaneContents(VariablesView.java:1109) at org.eclipse.debug.internal.ui.views.variables.VariablesView.setViewerInput(VariablesView.java:463) at org.eclipse.debug.internal.ui.views.variables.VariablesView.viewerInputUpdateComplete(VariablesView.java:451) at org.eclipse.debug.internal.ui.views.variables.VariablesView$1.viewerInputComplete(VariablesView.java:294) at org.eclipse.debug.internal.ui.viewers.model.provisional.ViewerInputService$2.viewerInputComplete(ViewerInputService.java:51) at org.eclipse.debug.internal.ui.viewers.model.ViewerInputUpdate$1.runInUIThread(ViewerInputUpdate.java:68) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:95) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3514) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3163) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:173) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:388) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275) at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.disconnectFromWorkspace(IDEWorkbenchAdvisor.java:515) at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.postShutdown(IDEWorkbenchAdvisor.java:348) at org.eclipse.ui.internal.Workbench.shutdown(Workbench.java:3024) at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1118) at org.eclipse.ui.internal.Workbench.access$15(Workbench.java:1035) at org.eclipse.ui.internal.Workbench$25.run(Workbench.java:1279) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.Workbench.close(Workbench.java:1277) at org.eclipse.ui.internal.Workbench.close(Workbench.java:1249) at org.eclipse.ui.internal.testing.WorkbenchTestable$2.run(WorkbenchTestable.java:124) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3514) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3163) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2697) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2661) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2495) 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:115) at org.eclipse.pde.internal.junit.runtime.UITestApplication.start(UITestApplication.java:47) 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: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:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) at org.eclipse.equinox.launcher.Main.main(Main.java:1386) Sorry, no additional steps.
Reproduced it on Windows 7 in: Version: 3.7.0 Build id: I20110222-0800
Stack trace when suspended in the detail pane proxy when the parent composite is disposed (the one that will throw the exception mentioned in comment#0). Looks like there is a job scheduled to run, and does run after the test target workbench has been closed. Thread [main] (Suspended (breakpoint at line 243 in org.eclipse.debug.internal.ui.views.variables.details.DetailPaneProxy)) owns: org.eclipse.swt.widgets.RunnableLock (id=3473) owns: org.eclipse.swt.widgets.RunnableLock (id=3474) org.eclipse.debug.internal.ui.views.variables.details.DetailPaneProxy.setupPane(java.lang.String, org.eclipse.jface.viewers.IStructuredSelection) line: 243 org.eclipse.debug.internal.ui.views.variables.details.DetailPaneProxy.display(org.eclipse.jface.viewers.IStructuredSelection) line: 124 org.eclipse.debug.internal.ui.views.variables.VariablesView.refreshDetailPaneContents() line: 1115 org.eclipse.debug.internal.ui.views.variables.VariablesView.setViewerInput(java.lang.Object) line: 469 org.eclipse.debug.internal.ui.views.variables.VariablesView.viewerInputUpdateComplete(org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputUpdate) line: 457 org.eclipse.debug.internal.ui.views.variables.VariablesView$1.viewerInputComplete(org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputUpdate) line: 300 org.eclipse.debug.internal.ui.viewers.model.provisional.ViewerInputService$2.viewerInputComplete(org.eclipse.debug.internal.ui.viewers.model.provisional.IViewerInputUpdate) line: 51 org.eclipse.debug.internal.ui.viewers.model.ViewerInputUpdate$1.runInUIThread(org.eclipse.core.runtime.IProgressMonitor) line: 68 org.eclipse.ui.progress.UIJob$1.run() line: 95 org.eclipse.swt.widgets.RunnableLock.run() line: 35 org.eclipse.ui.internal.UISynchronizer(org.eclipse.swt.widgets.Synchronizer).runAsyncMessages(boolean) line: 134 org.eclipse.swt.widgets.Display.runAsyncMessages(boolean) line: 4101 org.eclipse.swt.widgets.Display.readAndDispatch() line: 3718 org.eclipse.jface.operation.ModalContext$ModalContextThread.block() line: 173 org.eclipse.jface.operation.ModalContext.run(org.eclipse.jface.operation.IRunnableWithProgress, boolean, org.eclipse.core.runtime.IProgressMonitor, org.eclipse.swt.widgets.Display) line: 388 org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor$CancelableProgressMonitorJobsDialog(org.eclipse.jface.dialogs.ProgressMonitorDialog).run(boolean, boolean, org.eclipse.jface.operation.IRunnableWithProgress) line: 507 org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor$CancelableProgressMonitorJobsDialog(org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog).run(boolean, boolean, org.eclipse.jface.operation.IRunnableWithProgress) line: 275 org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.disconnectFromWorkspace() line: 515 org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.postShutdown() line: 348 org.eclipse.ui.internal.Workbench.shutdown() line: 3023 org.eclipse.ui.internal.Workbench.busyClose(boolean) line: 1118 org.eclipse.ui.internal.Workbench.access$15(org.eclipse.ui.internal.Workbench, boolean) line: 1035 org.eclipse.ui.internal.Workbench$25.run() line: 1279 org.eclipse.swt.custom.BusyIndicator.showWhile(org.eclipse.swt.widgets.Display, java.lang.Runnable) line: 70 org.eclipse.ui.internal.Workbench.close(int, boolean) line: 1277 org.eclipse.ui.internal.Workbench.close() line: 1249 org.eclipse.ui.internal.testing.WorkbenchTestable$2.run() line: 124 org.eclipse.swt.widgets.RunnableLock.run() line: 35 org.eclipse.ui.internal.UISynchronizer(org.eclipse.swt.widgets.Synchronizer).runAsyncMessages(boolean) line: 134 org.eclipse.swt.widgets.Display.runAsyncMessages(boolean) line: 4101 org.eclipse.swt.widgets.Display.readAndDispatch() line: 3718 org.eclipse.ui.internal.Workbench.runEventLoop(org.eclipse.jface.window.Window$IExceptionHandler, org.eclipse.swt.widgets.Display) line: 2696 org.eclipse.ui.internal.Workbench.runUI() line: 2660 org.eclipse.ui.internal.Workbench.access$4(org.eclipse.ui.internal.Workbench) line: 2494 org.eclipse.ui.internal.Workbench$7.run() line: 674 org.eclipse.core.databinding.observable.Realm.runWithDefault(org.eclipse.core.databinding.observable.Realm, java.lang.Runnable) line: 332 org.eclipse.ui.internal.Workbench.createAndRunWorkbench(org.eclipse.swt.widgets.Display, org.eclipse.ui.application.WorkbenchAdvisor) line: 667 org.eclipse.ui.PlatformUI.createAndRunWorkbench(org.eclipse.swt.widgets.Display, org.eclipse.ui.application.WorkbenchAdvisor) line: 149 org.eclipse.ui.internal.ide.application.IDEApplication.start(org.eclipse.equinox.app.IApplicationContext) line: 115 org.eclipse.pde.internal.junit.runtime.UITestApplication.start(org.eclipse.equinox.app.IApplicationContext) line: 47 org.eclipse.equinox.internal.app.EclipseAppHandle.run(java.lang.Object) line: 196 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(java.lang.Object) line: 110 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(java.lang.Object) line: 79 org.eclipse.core.runtime.adaptor.EclipseStarter.run(java.lang.Object) line: 344 org.eclipse.core.runtime.adaptor.EclipseStarter.run(java.lang.String[], java.lang.Runnable) line: 179 sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method] sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 39 sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 25 java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 597 org.eclipse.equinox.launcher.Main.invokeFramework(java.lang.String[], java.net.URL[]) line: 622 org.eclipse.equinox.launcher.Main.basicRun(java.lang.String[]) line: 577 org.eclipse.equinox.launcher.Main.run(java.lang.String[]) line: 1410 org.eclipse.equinox.launcher.Main.main(java.lang.String[]) line: 1386
I just got this problem running an inner in 4.x. 1. Open the (previously unopened) 'Debug' perspective. 2. Switch back to 'Java' immediately. 3. Closed the 'Debug' perspective.
Showed up again in the Ant UI tests: http://download.eclipse.org/eclipse/downloads/drops4/I20130311-2000/testresults/linux.gtk.x86_6.0/org.eclipse.ant.tests.ui.testplugin.AntUITests.txt
Created attachment 228370 [details] Fix
Fixed in master http://git.eclipse.org/c/platform/eclipse.platform.debug.git/commit/?id=f852e6d63ce50adc52549b5ac708c33b00cb6342
Pawel, can you please verify?
The failed ant test trace is gone so I'm not sure where the latest failure came from, but the fix make sense. I added one more guard against a cancelled test in ViewerInputService: http://git.eclipse.org/c/platform/eclipse.platform.debug.git/commit/?id=fc10101c30941301566a8dfe7b6e4f93cc56584e
Verified in: Version: 4.3.0 Build id: I20130523-1400