Community
Participate
Working Groups
I20040219 1. Have multiple editors open in the new look 2. Make sure you activated every editor once (for quick diff to kick in) 3. Get into a state where the drop down does not go away any longer (see bug 50638). Not sure whether this is important but it might for some workspace locking reason. 3. Close the editors over the TabFolder close button (hollow X) At some point, the entire workbench locks up and the UI thread is blocked. Killing -3 the java process gives the following thread dump: ThreadName=main(0x80523ec) Status=Blocked on flat lock Monitor=0x98140a8 (Object monitor for org/eclipse/team/internal/ccvs/ui/RemoteRevisionQuickDiffProvider @ 0x427bb944) Count=1 Owner=Worker-9(0x9a4f500) In org/eclipse/team/internal/ccvs/ui/RemoteRevisionQuickDiffProvider.dispose()V In org/eclipse/ui/internal/texteditor/quickdiff/DocumentLineDiffer.uninstall()V In org/eclipse/ui/internal/texteditor/quickdiff/DocumentLineDiffer.disconnect(Lorg/eclipse/jface /text/IDocument;)V In org/eclipse/jface/text/source/AnnotationModel.disconnect(Lorg/eclipse/jface/text/IDocument;)V In org/eclipse/jface/text/source/VisualAnnotationModel.disconnect(Lorg/eclipse/jface/text/IDocum ent;)V In org/eclipse/jface/text/source/SourceViewer.setDocument(Lorg/eclipse/jface/text/IDocument;Lorg /eclipse/jface/text/source/IAnnotationModel;II)V In org/eclipse/jface/text/source/SourceViewer.setDocument(Lorg/eclipse/jface/text/IDocument;)V In org/eclipse/jface/text/TextViewer$1.widgetDisposed(Lorg/eclipse/swt/events/DisposeEvent;)V In org/eclipse/swt/widgets/TypedListener.handleEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/EventTable.sendEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/Widget.sendEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/Widget.sendEvent(ILorg/eclipse/swt/widgets/Event;Z)V In org/eclipse/swt/widgets/Widget.sendEvent(ILorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/Widget.notifyListeners(ILorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/custom/StyledText.handleDispose(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/custom/StyledText$7.handleEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/EventTable.sendEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/Widget.sendEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/Widget.sendEvent(ILorg/eclipse/swt/widgets/Event;Z)V In org/eclipse/swt/widgets/Widget.sendEvent(I)V In org/eclipse/swt/widgets/Widget.releaseWidget()V In org/eclipse/swt/widgets/Control.releaseWidget()V In org/eclipse/swt/widgets/Scrollable.releaseWidget()V In org/eclipse/swt/widgets/Composite.releaseWidget()V In org/eclipse/swt/widgets/Canvas.releaseWidget()V In org/eclipse/swt/widgets/Widget.releaseResources()V In org/eclipse/swt/widgets/Composite.releaseChildren()V In org/eclipse/swt/widgets/Composite.releaseWidget()V In org/eclipse/swt/widgets/Canvas.releaseWidget()V In org/eclipse/swt/widgets/Widget.releaseResources()V In org/eclipse/swt/widgets/Composite.releaseChildren()V In org/eclipse/swt/widgets/Composite.releaseWidget()V In org/eclipse/swt/widgets/Widget.releaseResources()V In org/eclipse/swt/widgets/Composite.releaseChildren()V In org/eclipse/swt/widgets/Composite.releaseWidget()V In org/eclipse/swt/widgets/Widget.releaseResources()V In org/eclipse/swt/widgets/Composite.releaseChildren()V In org/eclipse/swt/widgets/Composite.releaseWidget()V In org/eclipse/swt/widgets/Widget.releaseResources()V In org/eclipse/swt/widgets/Composite.releaseChildren()V In org/eclipse/swt/widgets/Composite.releaseWidget()V In org/eclipse/swt/widgets/Widget.dispose()V In org/eclipse/ui/internal/PartPane.dispose()V In org/eclipse/ui/internal/EditorPresentation.closeEditor(Lorg/eclipse/ui/internal/EditorPane;)V In org/eclipse/ui/internal/EditorPresentation.closeEditor(Lorg/eclipse/ui/IEditorPart;)V In org/eclipse/ui/internal/EditorManager.closeEditor(Lorg/eclipse/ui/IEditorReference;)V In org/eclipse/ui/internal/WorkbenchPage.closeEditor(Lorg/eclipse/ui/IEditorPart;Z)Z In org/eclipse/ui/internal/WorkbenchPage.closeEditor(Lorg/eclipse/ui/IEditorReference;Z)Z In org/eclipse/ui/internal/EditorPane.doHide()V In org/eclipse/ui/internal/TabbedEditorWorkbook$3.itemClosed(Lorg/eclipse/swt/custom/CTabFolderE vent;)V In org/eclipse/swt/custom/CTabFolder2.onMouse(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/custom/CTabFolder2$1.handleEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/EventTable.sendEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/Widget.sendEvent(Lorg/eclipse/swt/widgets/Event;)V In org/eclipse/swt/widgets/Display.runDeferredEvents()Z In org/eclipse/swt/widgets/Display.readAndDispatch()Z In org/eclipse/ui/internal/Workbench.runEventLoop(Lorg/eclipse/jface/window/Window$IExceptionHan dler;Lorg/eclipse/swt/widgets/Display;)V In org/eclipse/ui/internal/Workbench.runUI()I In org/eclipse/ui/internal/Workbench.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg /eclipse/ui/application/WorkbenchAdvisor;)I In org/eclipse/ui/PlatformUI.createAndRunWorkbench(Lorg/eclipse/swt/widgets/Display;Lorg/eclipse /ui/application/WorkbenchAdvisor;)I In org/eclipse/ui/internal/ide/IDEApplication.run(Ljava/lang/Object;)Ljava/lang/Object; In org/eclipse/core/internal/runtime/PlatformActivator$1.run()V In org/eclipse/core/runtime/adaptor/EclipseStarter.run([Ljava/lang/String;Ljava/lang/Runnable;)L java/lang/Object; In sun/reflect/NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Lja va/lang/Object;)Ljava/lang/Object; In sun/reflect/NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/ Object; In sun/reflect/DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/l ang/Object; In java/lang/reflect/Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; In org/eclipse/core/launcher/Main.basicRun([Ljava/lang/String;)Ljava/lang/Object; In org/eclipse/core/launcher/Main.run([Ljava/lang/String;)Ljava/lang/Object; In org/eclipse/core/launcher/Main.main([Ljava/lang/String;)V
This is because the dispose() of the RemoteRevisionQuickDiffProvider waits for the job to end. If the workbench is in a messed up state it may block on the join() call. Maybe we don't need the join, and instead just call cancel() without waiting?
Post 3.0
This was fixed a while ago