Project: Eclipse_Platform_UI
Bug 41311 Deadlock? on exit
Reported: 2003-08-08 03:54:43 | Status: resolved fixed

I20030806 It does not look like a deadlock since the CPU runs at 100% Full thread dump Java HotSpot(TM) Client VM (1.4.1_02-b06 mixed mode): "Worker-201" prio=7 tid=0x1DD114E8 nid=0xab4 waiting on condition [1e73f000..1e73fd8c] at java.util.AbstractList.iterator(AbstractList.java:332) at org.eclipse.ui.internal.progress.JobProgressManager.add(JobProgressManager.java:314) at org.eclipse.ui.internal.progress.JobProgressManager.scheduled(JobProgressManager.java:193) at org.eclipse.core.internal.jobs.JobListeners$5.notify(JobListeners.java:47) at org.eclipse.core.internal.jobs.JobListeners$7.run(JobListeners.java:96) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1016) at org.eclipse.core.runtime.Platform.run(Platform.java:420) at org.eclipse.core.internal.jobs.JobListeners.doNotify(JobListeners.java:86) at org.eclipse.core.internal.jobs.JobListeners.scheduled(JobListeners.java:131) at org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:328) at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:172) at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:319) at org.eclipse.ui.internal.progress.AnimationItem$9.done(AnimationItem.java:549) at org.eclipse.core.internal.jobs.JobListeners$3.notify(JobListeners.java:37) at org.eclipse.core.internal.jobs.JobListeners$7.run(JobListeners.java:106) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1016) at org.eclipse.core.runtime.Platform.run(Platform.java:420) at org.eclipse.core.internal.jobs.JobListeners.doNotify(JobListeners.java:86) at org.eclipse.core.internal.jobs.JobListeners.done(JobListeners.java:125) at org.eclipse.core.internal.jobs.JobManager.endJob(JobManager.java:225) at org.eclipse.core.internal.jobs.WorkerPool.endJob(WorkerPool.java:50) - locked <045521D0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:73) "Worker-199" prio=7 tid=0x1DD73AB8 nid=0xf94 waiting for monitor entry [1e46f000..1e46fd8c] at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:121) - waiting to lock <045521D0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76) "Worker-170" prio=7 tid=0x1DDD1500 nid=0xcf8 in Object.wait() [1e6ff000..1e6ffd8c] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:97) - locked <045521D0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:129) - locked <045521D0> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76) "TimeoutOutputStream" daemon prio=7 tid=0x1DD744A0 nid=0xb34 in Object.wait() [1e54f000..1e54fd8c] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:426) at org.eclipse.team.internal.core.streams.TimeoutOutputStream.writeUntilDone(TimeoutOutputStream.java:240) - locked <07B7A068> (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:536) "Worker-68" prio=7 tid=0x1DBEE3D0 nid=0xcb8 in Object.wait() [1e84f000..1e84fd8c] at java.lang.Object.wait(Native Method) - waiting on <0B365498> (a org.eclipse.core.internal.jobs.Semaphore) at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:36) - locked <0B365498> (a org.eclipse.core.internal.jobs.Semaphore) at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java:143) at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:98) at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:75) at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:124) at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1538) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1573) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1590) at org.eclipse.core.internal.resources.DelayedSnapshotJob.run(DelayedSnapshotJob.java:43) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:61) "TimeoutOutputStream" daemon prio=7 tid=0x1D0CC528 nid=0xd38 in Object.wait() [1e4df000..1e4dfd8c] at java.lang.Object.wait(Native Method) - waiting on <066CBD90> (a org.eclipse.team.internal.core.streams.TimeoutOutputStream) at java.lang.Object.wait(Object.java:426) at org.eclipse.team.internal.core.streams.TimeoutOutputStream.writeUntilDone(TimeoutOutputStream.java:240) - locked <066CBD90> (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:536) "Java indexing" daemon prio=4 tid=0x1CD94CE0 nid=0x8a4 in Object.wait() [1d52f000..1d52fd8c] at java.lang.Object.wait(Native Method) - waiting on <04BA1308> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:426) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:358) - locked <04BA1308> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:536) "Signal Dispatcher" daemon prio=10 tid=0x009EB7C0 nid=0xd2c waiting on condition [0..0] "Finalizer" daemon prio=9 tid=0x009E8AD0 nid=0x574 in Object.wait() [1ca1f000..1ca1fd8c] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0454B9B8> (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=10 tid=0x0003E3C0 nid=0x568 in Object.wait() [95f000..95fd8c] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:426) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113) - locked <0454BA20> (a java.lang.ref.Reference$Lock) "main" prio=5 tid=0x00034A80 nid=0x994 runnable [7e000..7fc40] at java.io.FileOutputStream.close0(Native Method) at java.io.FileOutputStream.close(FileOutputStream.java:276) at java.io.FilterOutputStream.close(FilterOutputStream.java:143) at org.eclipse.core.internal.localstore.SafeFileOutputStream.close(SafeFileOutputStream.java:57) at java.io.FilterOutputStream.close(FilterOutputStream.java:143) at org.eclipse.core.internal.resources.SaveManager.visitAndSave(SaveManager.java:1468) at org.eclipse.core.internal.resources.SaveManager.visitAndSave(SaveManager.java:1478) at org.eclipse.core.internal.resources.SaveManager.save(SaveManager.java:1290) at org.eclipse.core.internal.resources.Workspace.save(Workspace.java:1608) at org.eclipse.ui.internal.Workbench$15.run(Workbench.java:795) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:302) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:252) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:357) at org.eclipse.ui.internal.Workbench.disconnectFromWorkspace(Workbench.java:802) at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:633) at org.eclipse.ui.internal.Workbench.access$7(Workbench.java:578) at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:741) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84) at org.eclipse.ui.internal.Workbench.close(Workbench.java:739) at org.eclipse.ui.internal.Workbench.close(Workbench.java:731) at org.eclipse.ui.internal.Workbench.close(Workbench.java:725) at org.eclipse.ui.internal.QuitAction.run(QuitAction.java:37) at org.eclipse.jface.action.Action.runWithEvent(Action.java:842) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:542) at org.eclipse.jface.action.ActionContributionItem.access$4(ActionContributionItem.java:496) at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:468) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:848) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2188) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1878) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1680) at org.eclipse.ui.internal.Workbench.run(Workbench.java:1663) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:858) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) 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:291) at org.eclipse.core.launcher.Main.run(Main.java:747) at org.eclipse.core.launcher.Main.main(Main.java:583) "VM Thread" prio=5 tid=0x009CC870 nid=0xebc runnable "VM Periodic Task Thread" prio=10 tid=0x009E8F90 nid=0xaf4 waiting on condition "Suspend Checker Thread" prio=10 tid=0x009F0008 nid=0xadc runnable

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/AnimationManager.java