Bug 52486 - blocked ui when closing editor due to RemoteRevisionReferenceProvider
Summary: blocked ui when closing editor due to RemoteRevisionReferenceProvider
Status: RESOLVED WORKSFORME
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Team (show other bugs)
Version: 3.0   Edit
Hardware: PC Linux-GTK
: P3 normal (vote)
Target Milestone: 3.1 M6   Edit
Assignee: Jean-Michel Lemieux CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-02-19 11:02 EST by Tom Hofmann CLA
Modified: 2005-02-11 13:49 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom Hofmann CLA 2004-02-19 11:02:44 EST
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
Comment 1 Jean-Michel Lemieux CLA 2004-02-27 15:39:58 EST
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?
Comment 2 Jean-Michel Lemieux CLA 2004-06-11 16:51:01 EDT
Post 3.0
Comment 3 Michael Valenta CLA 2005-02-11 13:49:28 EST
This was fixed a while ago