Project: Eclipse_Platform_UI
Bug 64745 User waiting dialog won't go away - had to kill Eclipse.
Reported: 2004-05-31 10:46:22 | Status: verified fixed

RC1 test candidate A background synchronize was running and I went to edit a file. The user operation is waiting dialog appeared. I let the synchronize complete, the afterwards the user operation remained in the dialog. The name of the user operation is the name of my workbench window (I don't know why this is the case) but when I pressed the cancel button for the user operation nothing happened. Eclipse is frozen because the user operation waiting dialog can't be closed. Should there at least be a close button? Or some way of getting rid of it? Here is the stack dump after everything was completed and the dialog wasn't able to be closed. Doesn't look like a deadlock but instead looks like the modal dialog is unresponsive. Full thread dump Java HotSpot(TM) Client VM (1.4.2_02-b03 mixed mode): "Thread-11" prio=5 tid=0x00a0dd28 nid=0x6bc runnable [463f000..463fd8c] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at com.jcraft.jsch.IO.getByte(Unknown Source) at com.jcraft.jsch.Session.read(Unknown Source) at com.jcraft.jsch.Session.run(Unknown Source) at java.lang.Thread.run(Thread.java:534) "Thread-5" prio=5 tid=0x039ee4c0 nid=0x360 runnable [5fef000..5fefd8c] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at com.jcraft.jsch.IO.getByte(Unknown Source) at com.jcraft.jsch.Session.read(Unknown Source) at com.jcraft.jsch.Session.run(Unknown Source) at java.lang.Thread.run(Thread.java:534) "Worker-7" prio=5 tid=0x039e90e8 nid=0xe60 in Object.wait() [492f000..492fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-6" prio=5 tid=0x039a59f0 nid=0xf9c in Object.wait() [48ef000..48efd8c] at java.lang.Object.wait(Native Method) - waiting on <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-5" prio=5 tid=0x039a0e70 nid=0xf50 in Object.wait() [48af000..48afd8c] at java.lang.Object.wait(Native Method) - waiting on <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-3" prio=5 tid=0x039c0f00 nid=0x61c in Object.wait() [482f000..482fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-2" prio=5 tid=0x03989868 nid=0xcb4 in Object.wait() [47af000..47afd8c] at java.lang.Object.wait(Native Method) - waiting on <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Worker-1" prio=5 tid=0x00a40278 nid=0x530 in Object.wait() [470f000..470fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Java indexing" daemon prio=4 tid=0x036e6ad8 nid=0xf80 in Object.wait() [45ff000..45ffd8c] at java.lang.Object.wait(Native Method) - waiting on <0x140514c8> (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:344) - locked <0x140514c8> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Reference Cleaner - 2" prio=7 tid=0x0343ab20 nid=0xe88 in Object.wait() [455f000..455fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x14048230> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x14048230> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207) "Reference Cleaner - 1" prio=7 tid=0x03699490 nid=0xfb0 in Object.wait() [451f000..451fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x140482a0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x140482a0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207) "Worker-0" prio=5 tid=0x03553b98 nid=0xe68 in Object.wait() [44df000..44dfd8c] at java.lang.Object.wait(Native Method) - waiting on <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:209) - locked <0x13e1bc98> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:236) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Start Level Event Dispatcher" daemon prio=5 tid=0x033d1970 nid=0x250 in Object.wait() [364f000..364fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x137e00c0> (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 <0x137e00c0> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Framework Event Dispatcher" daemon prio=5 tid=0x03523100 nid=0x390 in Object.wait() [360f000..360fd8c] at java.lang.Object.wait(Native Method) - waiting on <0x137e0110> (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 <0x137e0110> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Signal Dispatcher" daemon prio=10 tid=0x00a107b8 nid=0xbac waiting on condition [0..0] "YJP CPU Sampler" daemon prio=5 tid=0x0003e040 nid=0x3a0 runnable [0..0] "YJP RequestServer" daemon prio=5 tid=0x0003d6e0 nid=0x34c runnable [328f000..328fd8c] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) - locked <0x137e02b8> (a java.net.PlainSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:448) at java.net.ServerSocket.accept(ServerSocket.java:419) at com.yourkit.runtime.RequestServer.startServerImpl(RequestServer.java:180) at com.yourkit.runtime.RequestServer.access$000(RequestServer.java:18) at com.yourkit.runtime.RequestServer$1.run(RequestServer.java:56) "Finalizer" daemon prio=9 tid=0x009bfdd0 nid=0xc24 in Object.wait() [2e0f000..2e0fd8c] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x137e03d0> (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=0x009be9a0 nid=0xcf4 in Object.wait() [2dcf000..2dcfd8c] at java.lang.Object.wait(Native Method) - waiting on <0x137e0438> (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 <0x137e0438> (a java.lang.ref.Reference$Lock) "main" prio=7 tid=0x00035d50 nid=0xd84 runnable [7f000..7fc3c] at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method) at org.eclipse.swt.widgets.Display.sleep(Display.java:3020) at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:344) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1364) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1334) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:253) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:334) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:128) 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:638) at org.eclipse.core.launcher.Main.main(Main.java:622) "VM Thread" prio=5 tid=0x009fb6c0 nid=0x324 runnable "VM Periodic Task Thread" prio=10 tid=0x00a06db8 nid=0xee8 waiting on condition "Suspend Checker Thread" prio=10 tid=0x0003e238 nid=0xc50 runnable

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