Project: SWT
Bug 75168 Deadlocked Eclipse
Reported: 2004-09-28 09:58:23 | Status: resolved fixed

Running the latest from HEAD, I hit this deadlock while a progress dialog was open: Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode): "ModalContext" prio=1 tid=0x08873548 nid=0x1c51 waiting for monitor entry [4f106000..4f106854] at org.eclipse.swt.widgets.Synchronizer.addLast(Synchronizer.java:47) - waiting to lock <0x450d1650> (a java.lang.Object) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:148) - locked <0x45788fb8> (a org.eclipse.swt.widgets.RunnableLock) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:28) at org.eclipse.swt.widgets.Display.syncExec(Display.java:3090) at org.eclipse.jface.operation.AccumulatingProgressMonitor.beginTask(AccumulatingProgressMonitor.java:121) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1665) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:110) - locked <0x456cb288> (a org.eclipse.ui.actions.CopyFilesAndFoldersOperation$2) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:105) "TimeoutOutputStream" daemon prio=1 tid=0x4ea077b8 nid=0x1c51 in Object.wait() [4e852000..4e852854] at java.lang.Object.wait(Native Method) - waiting on <0x456c28f0> (a org.eclipse.team.internal.core.streams.TimeoutOutputStream) at java.lang.Object.wait(Object.java:429) at org.eclipse.team.internal.core.streams.TimeoutOutputStream.writeUntilDone(TimeoutOutputStream.java:240) - locked <0x456c28f0> (a org.eclipse.team.internal.core.streams.TimeoutOutputStream) at org.eclipse.team.internal.core.streams.TimeoutOutputStream.runThread(TimeoutOutputStream.java:195) at org.eclipse.team.internal.core.streams.TimeoutOutputStream.access$0(TimeoutOutputStream.java:193) at org.eclipse.team.internal.core.streams.TimeoutOutputStream$1.run(TimeoutOutputStream.java:66) at java.lang.Thread.run(Thread.java:534) "Worker-6" prio=1 tid=0x08611868 nid=0x1c51 waiting for monitor entry [4f085000..4f085854] at org.eclipse.swt.widgets.Synchronizer.addLast(Synchronizer.java:47) - waiting to lock <0x450d1650> (a java.lang.Object) at org.eclipse.swt.widgets.Synchronizer.asyncExec(Synchronizer.java:74) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:34) at org.eclipse.swt.widgets.Display.syncExec(Display.java:3090) at org.eclipse.ui.model.WorkbenchContentProvider.resourceChanged(WorkbenchContentProvider.java:107) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:283) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:277) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:151) at org.eclipse.core.internal.resources.Workspace.broadcastChanges(Workspace.java:172) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:901) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1683) at org.eclipse.core.internal.events.NotificationManager$NotifyJob.run(NotificationManager.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66) "Worker-5" prio=1 tid=0x08667358 nid=0x1c51 waiting for monitor entry [4e400000..4e400854] at org.eclipse.swt.widgets.Display.wakeThread(Display.java:3144) - waiting to lock <0x48b08390> (a java.lang.Class) at org.eclipse.swt.widgets.Synchronizer.addLast(Synchronizer.java:54) - locked <0x450d1650> (a java.lang.Object) at org.eclipse.swt.widgets.Synchronizer.asyncExec(Synchronizer.java:74) at org.eclipse.swt.widgets.Display.asyncExec(Display.java:562) at org.eclipse.ui.progress.UIJob.run(UIJob.java:85) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66) "Java indexing" daemon prio=1 tid=0x0831dc60 nid=0x1c51 in Object.wait() [4ce8e000..4ce8e854] at java.lang.Object.wait(Native Method) - waiting on <0x45192548> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:345) - locked <0x45192548> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Worker-3" prio=1 tid=0x081d2430 nid=0x1c51 in Object.wait() [4ddbe000..4ddbe854] at java.lang.Object.wait(Native Method) - waiting on <0x45083fb0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166) - locked <0x45083fb0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:193) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-2" prio=1 tid=0x081d19f8 nid=0x1c51 waiting for monitor entry [4dd3d000..4dd3d854] at org.eclipse.swt.widgets.Synchronizer.addLast(Synchronizer.java:47) - waiting to lock <0x450d1650> (a java.lang.Object) at org.eclipse.swt.widgets.Synchronizer.asyncExec(Synchronizer.java:74) at org.eclipse.swt.widgets.Display.asyncExec(Display.java:562) at org.eclipse.ui.progress.UIJob.run(UIJob.java:85) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66) "Reference Cleaner - 6" prio=1 tid=0x08305398 nid=0x1c51 in Object.wait() [4dafa000..4dafa854] at java.lang.Object.wait(Native Method) - waiting on <0x4514d8c8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x4514d8c8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.resource.ImageCache$ReferenceCleanerThread.run(ImageCache.java:161) "Reference Cleaner - 5" prio=1 tid=0x083050e8 nid=0x1c51 in Object.wait() [4da79000..4da79854] at java.lang.Object.wait(Native Method) - waiting on <0x4514d938> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x4514d938> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.resource.ImageCache$ReferenceCleanerThread.run(ImageCache.java:161) "Reference Cleaner - 4" prio=1 tid=0x08301148 nid=0x1c51 in Object.wait() [4d9f8000..4d9f8854] at java.lang.Object.wait(Native Method) - waiting on <0x4514d9a8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x4514d9a8> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.resource.ImageCache$ReferenceCleanerThread.run(ImageCache.java:161) "Worker-0" prio=1 tid=0x0837f870 nid=0x1c51 waiting for monitor entry [4d977000..4d977854] at org.eclipse.swt.widgets.Synchronizer.addLast(Synchronizer.java:47) - waiting to lock <0x450d1650> (a java.lang.Object) at org.eclipse.swt.widgets.Synchronizer.asyncExec(Synchronizer.java:74) at org.eclipse.swt.widgets.Display.asyncExec(Display.java:562) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.postLabelEvent(CVSLightweightDecorator.java:396) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.refresh(CVSLightweightDecorator.java:326) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.projectConfigured(CVSLightweightDecorator.java:381) at org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners$4.notify(ResourceStateChangeListeners.java:129) at org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners$Notification.run(ResourceStateChangeListeners.java:54) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners$Notification.run(ResourceStateChangeListeners.java:51) at org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners.fireNotification(ResourceStateChangeListeners.java:75) at org.eclipse.team.internal.ccvs.core.util.ResourceStateChangeListeners.projectConfigured(ResourceStateChangeListeners.java:127) at org.eclipse.team.internal.ccvs.core.CVSTeamProvider.configureProject(CVSTeamProvider.java:501) at org.eclipse.team.core.RepositoryProvider.configure(RepositoryProvider.java:297) at org.eclipse.team.core.RepositoryProvider.map(RepositoryProvider.java:123) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation.refreshProjects(CheckoutProjectOperation.java:457) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation.performCheckout(CheckoutProjectOperation.java:254) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation$1.run(CheckoutProjectOperation.java:151) at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run(EclipseSynchronizer.java:1382) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutProjectOperation.checkout(CheckoutProjectOperation.java:149) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutMultipleProjectsOperation.checkout(CheckoutMultipleProjectsOperation.java:50) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation.checkout(CheckoutOperation.java:46) at org.eclipse.team.internal.ccvs.ui.operations.CheckoutOperation.execute(CheckoutOperation.java:31) at org.eclipse.team.internal.ccvs.ui.operations.CVSOperation.run(CVSOperation.java:84) at org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnableContext.java:159) at org.eclipse.team.internal.ui.actions.JobRunnableContext$3.runInWorkspace(JobRunnableContext.java:179) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66) "Reference Cleaner - 3" prio=1 tid=0x0808ff58 nid=0x1c51 in Object.wait() [4d8b5000..4d8b5854] at java.lang.Object.wait(Native Method) - waiting on <0x45102430> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x45102430> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.resource.ImageCache$ReferenceCleanerThread.run(ImageCache.java:161) "Reference Cleaner - 2" prio=1 tid=0x08091180 nid=0x1c51 in Object.wait() [4d834000..4d834854] at java.lang.Object.wait(Native Method) - waiting on <0x451024a0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x451024a0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.resource.ImageCache$ReferenceCleanerThread.run(ImageCache.java:161) "Reference Cleaner - 1" prio=1 tid=0x08090f50 nid=0x1c51 in Object.wait() [4d0a0000..4d0a0854] at java.lang.Object.wait(Native Method) - waiting on <0x45102510> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x45102510> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.resource.ImageCache$ReferenceCleanerThread.run(ImageCache.java:161) "Start Level Event Dispatcher" daemon prio=1 tid=0x0823efc0 nid=0x1c51 in Object.wait() [4d01f000..4d01f854] at java.lang.Object.wait(Native Method) - waiting on <0x44c4d438> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x44c4d438> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Framework Event Dispatcher" daemon prio=1 tid=0x08242560 nid=0x1c51 in Object.wait() [4cf9e000..4cf9e854] at java.lang.Object.wait(Native Method) - waiting on <0x44c41ab8> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x44c41ab8> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Signal Dispatcher" daemon prio=1 tid=0x0809d700 nid=0x1c51 waiting on condition [0..0] "Finalizer" daemon prio=1 tid=0x08088998 nid=0x1c51 in Object.wait() [4c924000..4c924854] at java.lang.Object.wait(Native Method) - waiting on <0x44c2a698> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x44c2a698> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=1 tid=0x08087da8 nid=0x1c51 in Object.wait() [4c8a3000..4c8a3854] at java.lang.Object.wait(Native Method) - waiting on <0x44c2a700> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x44c2a700> (a java.lang.ref.Reference$Lock) "main" prio=1 tid=0x080525b8 nid=0x1c51 waiting for monitor entry [bfff9000..bfffbd08] at org.eclipse.swt.widgets.Synchronizer.removeFirst(Synchronizer.java:90) - waiting to lock <0x450d1650> (a java.lang.Object) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:101) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2636) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2365) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:141) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:279) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:449) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:268) at org.eclipse.ui.actions.CopyFilesAndFoldersOperation.copyResources(CopyFilesAndFoldersOperation.java:501) at org.eclipse.ui.views.navigator.PasteAction.run(PasteAction.java:134) at org.eclipse.ui.actions.BaseSelectionListenerAction.runWithEvent(BaseSelectionListenerAction.java:167) at org.eclipse.ui.actions.TextActionHandler$PasteActionHandler.runWithEvent(TextActionHandler.java:245) at org.eclipse.ui.actions.RetargetAction.runWithEvent(RetargetAction.java:215) at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:188) at org.eclipse.ui.internal.commands.Command.execute(Command.java:130) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:463) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:956) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:997) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:541) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:488) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:241) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1059) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:972) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:997) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:2374) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1859) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:448) at org.eclipse.swt.widgets.Tree.gtk_key_press_event(Tree.java:650) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1228) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3168) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(Native Method) at org.eclipse.swt.widgets.Display.eventProc(Display.java:902) at org.eclipse.swt.internal.gtk.OS.gtk_main_iteration(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2361) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1443) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1414) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:271) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) 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.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:704) at org.eclipse.core.launcher.Main.main(Main.java:688) "VM Thread" prio=1 tid=0x08086ab8 nid=0x1c51 runnable "VM Periodic Task Thread" prio=1 tid=0x0809ff10 nid=0x1c51 waiting on condition "Suspend Checker Thread" prio=1 tid=0x0809cd60 nid=0x1c51 runnable Found one Java-level deadlock: ============================= "Worker-5": waiting to lock monitor 0x08089614 (object 0x48b08390, a java.lang.Class), which is held by "main" "main": waiting to lock monitor 0x08089844 (object 0x450d1650, a java.lang.Object), which is held by "Worker-5" Java stack information for the threads listed above: =================================================== "Worker-5": at org.eclipse.swt.widgets.Display.wakeThread(Display.java:3144) - waiting to lock <0x48b08390> (a java.lang.Class) at org.eclipse.swt.widgets.Synchronizer.addLast(Synchronizer.java:54) - locked <0x450d1650> (a java.lang.Object) at org.eclipse.swt.widgets.Synchronizer.asyncExec(Synchronizer.java:74) at org.eclipse.swt.widgets.Display.asyncExec(Display.java:562) at org.eclipse.ui.progress.UIJob.run(UIJob.java:85) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:66) "main": at org.eclipse.swt.widgets.Synchronizer.removeFirst(Synchronizer.java:90) - waiting to lock <0x450d1650> (a java.lang.Object) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:101) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2636) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2365) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:141) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:279) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:449) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:268) at org.eclipse.ui.actions.CopyFilesAndFoldersOperation.copyResources(CopyFilesAndFoldersOperation.java:501) at org.eclipse.ui.views.navigator.PasteAction.run(PasteAction.java:134) at org.eclipse.ui.actions.BaseSelectionListenerAction.runWithEvent(BaseSelectionListenerAction.java:167) at org.eclipse.ui.actions.TextActionHandler$PasteActionHandler.runWithEvent(TextActionHandler.java:245) at org.eclipse.ui.actions.RetargetAction.runWithEvent(RetargetAction.java:215) at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:188) at org.eclipse.ui.internal.commands.Command.execute(Command.java:130) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:463) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:956) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:997) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:541) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:488) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:241) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1059) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:972) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:997) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:2374) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1859) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:448) at org.eclipse.swt.widgets.Tree.gtk_key_press_event(Tree.java:650) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1228) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3168) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(Native Method) at org.eclipse.swt.widgets.Display.eventProc(Display.java:902) at org.eclipse.swt.internal.gtk.OS.gtk_main_iteration(Native Method) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2361) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1443) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1414) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:271) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) 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.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:704) at org.eclipse.core.launcher.Main.main(Main.java:688) Found 1 deadlock.

Files changed in fix:
bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/widgets/Synchronizer.java