Project: SWT
Bug 107324 Recent changes causing a VM crash
Reported: 2005-08-18 10:07:19 | Status: resolved fixed

Running with SWT from head is causing the UI test suites to die with a VM crash. The last thing to occur before this happens is a failed test with the following stack: org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:3241) at org.eclipse.swt.SWT.error(SWT.java:3164) at org.eclipse.swt.SWT.error(SWT.java:3135) at org.eclipse.swt.widgets.Widget.error(Widget.java:684) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:319) at org.eclipse.swt.widgets.Menu.indexOf(Menu.java:809) at org.eclipse.swt.widgets.MenuItem.setMenu(MenuItem.java:707) at org.eclipse.swt.widgets.Menu.releaseParent(Menu.java:899) at org.eclipse.swt.widgets.Widget.release(Widget.java:1301) at org.eclipse.swt.widgets.Widget.release(Widget.java:1287) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:615) at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:356) at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1104) at org.eclipse.swt.widgets.Widget.release(Widget.java:1296) at org.eclipse.swt.widgets.Widget.release(Widget.java:1287) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:615) at org.eclipse.jface.window.Window.close(Window.java:321) at org.eclipse.jface.window.ApplicationWindow.close(ApplicationWindow.java:291) at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1403) at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:646) at org.eclipse.ui.internal.WorkbenchWindow.access$0(WorkbenchWindow.java:627) at org.eclipse.ui.internal.WorkbenchWindow$2.run(WorkbenchWindow.java:728) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:726) at org.eclipse.ui.tests.util.UITestCase.closeAllTestWindows(UITestCase.java:274) at org.eclipse.ui.tests.util.UITestCase.doTearDown(UITestCase.java:215) at org.eclipse.ui.tests.api.IWorkbenchPageTest.doTearDown(IWorkbenchPageTest.java:69) at org.eclipse.ui.tests.util.UITestCase.tearDown(UITestCase.java:203) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344) at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main (RemotePluginTestRunner.java:57) at org.eclipse.pde.internal.junit.runtime.UITestApplication$1.run(UITestApplication.java:99) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2951) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2727) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1734) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1698) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103) at org.eclipse.pde.internal.junit.runtime.UITestApplication.run(UITestApplication.java:39) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163) 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:324) at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338) at org.eclipse.core.launcher.Main.basicRun(Main.java:282) at org.eclipse.core.launcher.Main.run(Main.java:977) at org.eclipse.core.launcher.Main.main(Main.java:952)

Files changed in fix:
bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Combo.java bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Menu.java bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/MenuItem.java bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Widget.java