Community
Participate
Working Groups
Using I20080304-1113, I got this error in the .log file. No steps to reproduce. Looks like bug 176447, but it was fixed for 3.3. org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:3756) at org.eclipse.swt.SWT.error(SWT.java:3674) at org.eclipse.swt.SWT.error(SWT.java:3645) at org.eclipse.swt.widgets.Widget.error(Widget.java:462) at org.eclipse.swt.widgets.Widget.getDisplay(Widget.java:577) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updatePresentation(TextMergeViewer.java:1387) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.update(TextMergeViewer.java:4433) at org.eclipse.compare.contentmergeviewer.TextMergeViewer.updateContent(TextMergeViewer.java:2361) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.internalRefresh(ContentMergeViewer.java:715) at org.eclipse.compare.contentmergeviewer.ContentMergeViewer.refresh(ContentMergeViewer.java:690) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.resetDocument(TextMergeViewer.java:797) at org.eclipse.compare.contentmergeviewer.TextMergeViewer$ContributorInfo.elementDeleted(TextMergeViewer.java:786) at org.eclipse.ui.editors.text.TextFileDocumentProvider$FileBufferListener.underlyingFileDeleted(TextFileDocumentProvider.java:330) at org.eclipse.core.internal.filebuffers.TextFileBufferManager$7.run(TextFileBufferManager.java:717) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.filebuffers.TextFileBufferManager.fireUnderlyingFileDeleted(TextFileBufferManager.java:715) at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.handleFileDeleted(ResourceFileBuffer.java:466) at org.eclipse.core.internal.filebuffers.ResourceFileBuffer$4.execute(ResourceFileBuffer.java:169) at org.eclipse.core.internal.filebuffers.ResourceFileBuffer$SafeFileChange.run(ResourceFileBuffer.java:86) 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:3749) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3374) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2365) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2329) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2195) at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:475) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:470) 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:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 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: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)
Created attachment 91737 [details] Quick fix It looks like we will need another checkState kind of check. To be honest, I don't know how is it related to bug 176447, but the stacktraces look identical to me too. I would appreciate any steps or clues why this might happen. Anyway, here is my proposition of a quick fix.
Created attachment 91738 [details] mylyn/context/zip
Created attachment 127149 [details] Fix #2 Here's another place that might bevulnerable to the same problem. This has been found on bug 263935.
Steps to reproduce the problem through debug: Host: 1. Add a breakpoint B1 at TextMergeViewer.handleDispose() 2. Add a breakpoint B2 at RangeDifference.findRanges(IProgressMonitor, IRangeComparator, IRangeComparator, IRangeComparator) Guest: 3. Add a file A.java that doesn't exist in a CVS repository 4. Synchronize with CVS 5. You got one change outgoing (A.java addition) 6. Open compare editor on that addition 7. Select "Override and Update" from context menu for the change Host: 8. You got hits on B1 and B2 9. First let the tread stopped at B1 go 10. Wait at least 50 ms ;) 11. Let the thread stopped at B2 go Guest: 12. An exception appeared in the Error Log
Fix attached by Tomasz in comment 3 resolves the problem.
*** Bug 260894 has been marked as a duplicate of this bug. ***
Please note that "Quick fix" is no longer valid since signature of updatePresentation(Display) has been changed to updatePresentation() (no params).
"Fix #2" released to HEAD, available in builds >N20090301-2000. Thanks for extra debugging Pawel!
*** Bug 260512 has been marked as a duplicate of this bug. ***