Project: Eclipse_Platform_UI
Bug 47404 [Jobs] UI no longer responsive during CVS update action
Reported: 2003-11-25 07:06:01 | Status: closed fixed

Build 3.0M5, win2000, jre1.4.1_05 While doing a CVS update action (grabbed a 4MB JAR patch), the IDE froze entirely. CPU usage was close to zero, memory was under control. See below thread dump: Full thread dump Java HotSpot(TM) Client VM (1.4.1_05-b01 mixed mode): "TimeoutOutputStream" daemon prio=5 tid=0x185DC688 nid=0x29c in Object.wait() [19e2f000..19e2fd88] 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 <0848BB10> (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-36" prio=5 tid=0x185EFC98 nid=0x3f8 in Object.wait() [19ddf000..19ddfd88] at java.lang.Object.wait(Native Method) - waiting on <03F08DB8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185) - locked <03F08DB8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob (WorkerPool.java:211) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-35" prio=5 tid=0x1881FD78 nid=0x5c4 in Object.wait() [19bbf000..19bbfd88] at java.lang.Object.wait(Native Method) - waiting on <03F08DB8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185) - locked <03F08DB8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob (WorkerPool.java:211) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-34" prio=5 tid=0x188A7638 nid=0x5f8 waiting on condition [19b7f000..19b7fd88] at java.lang.Thread.sleep(Native Method) at org.eclipse.ui.internal.progress.AnimationManager.animateLoop (AnimationManager.java:318) at org.eclipse.ui.internal.progress.AnimationManager$3.run (AnimationManager.java:467) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62) "Worker-33" prio=5 tid=0x185952F8 nid=0x11c in Object.wait() [19b3f000..19b3fd88] at java.lang.Object.wait(Native Method) - waiting on <03F08DB8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:185) - locked <03F08DB8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob (WorkerPool.java:211) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-29" prio=5 tid=0x188A74E0 nid=0x4e8 runnable [19aff000..19affd88] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at org.eclipse.team.internal.core.streams.PollingInputStream.read (PollingInputStream.java:119) at java.io.BufferedInputStream.read1(BufferedInputStream.java:220) at java.io.BufferedInputStream.read(BufferedInputStream.java:277) - locked <0848BD50> (a java.io.BufferedInputStream) at org.eclipse.team.internal.core.streams.SizeConstrainedInputStream.read (SizeConstrainedInputStream.java:104) at org.eclipse.team.internal.core.streams.ProgressMonitorInputStream.read (ProgressMonitorInputStream.java:91) at java.io.FilterInputStream.read(FilterInputStream.java:90) at org.eclipse.core.internal.localstore.FileSystemStore.transferStreams (FileSystemStore.java:326) - locked <0411DFD0> (a [B) at org.eclipse.core.internal.localstore.FileSystemStore.write (FileSystemStore.java:367) at org.eclipse.core.internal.localstore.FileSystemResourceManager.write (FileSystemResourceManager.java:690) at org.eclipse.core.internal.resources.File.internalSetContents (File.java:237) at org.eclipse.core.internal.resources.File.setContents(File.java:278) at org.eclipse.core.internal.resources.File.setContents(File.java:323) at org.eclipse.team.internal.ccvs.core.resources.EclipseFile.setContents (EclipseFile.java:231) at org.eclipse.team.internal.ccvs.core.client.Session.receiveFile (Session.java:987) at org.eclipse.team.internal.ccvs.core.client.UpdatedHandler.receiveTargetFile (UpdatedHandler.java:116) at org.eclipse.team.internal.ccvs.core.client.UpdatedHandler.handle (UpdatedHandler.java:97) at org.eclipse.team.internal.ccvs.core.client.Request.executeRequest (Request.java:232) at org.eclipse.team.internal.ccvs.core.client.Command.doExecute (Command.java:404) at org.eclipse.team.internal.ccvs.core.client.Update.doExecute (Update.java:200) at org.eclipse.team.internal.ccvs.core.client.UpdateMergableOnly.doExecute (UpdateMergableOnly.java:101) at org.eclipse.team.internal.ccvs.core.client.Command$1.run (Command.java:336) at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run (EclipseSynchronizer.java:1381) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder$3.run (EclipseFolder.java:300) at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1554) at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1579) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.run (EclipseFolder.java:297) at org.eclipse.team.internal.ccvs.core.client.Command.execute (Command.java:347) at org.eclipse.team.internal.ccvs.core.client.Command.execute (Command.java:737) at org.eclipse.team.internal.ccvs.ui.operations.UpdateOnlyMergableOperation.execute Command(UpdateOnlyMergableOperation.java:48) at org.eclipse.team.internal.ccvs.ui.operations.SingleCommandOperation.execute (SingleCommandOperation.java:47) at org.eclipse.team.internal.ccvs.ui.operations.RepositoryProviderOperation.execute (RepositoryProviderOperation.java:55) at org.eclipse.team.internal.ccvs.ui.operations.CVSOperation.run (CVSOperation.java:127) at org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction.safeUpdate (SafeUpdateAction.java:296) at org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceUpdateAction.runSafeUpdate (WorkspaceUpdateAction.java:62) at org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction.safeUpdate (SafeUpdateAction.java:190) at org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateAction.run (SafeUpdateAction.java:66) at org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction$2.run (CVSSubscriberAction.java:144) at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run (EclipseSynchronizer.java:1381) at org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberAction$1.run (CVSSubscriberAction.java:139) at org.eclipse.team.internal.ccvs.ui.operations.CVSNonblockingRunnableContext.run (CVSNonblockingRunnableContext.java:47) at org.eclipse.team.internal.ccvs.ui.operations.CVSNonblockingRunnableContext$2.run InWorkspace(CVSNonblockingRunnableContext.java:67) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run (InternalWorkspaceJob.java:37) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x172ACD18 nid=0x518 runnable [19a3f000..19a3fd88] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <07624F40> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x16EC2528 nid=0x5b0 runnable [193cf000..193cfd88] at java.lang.Object.wait(Native Method) - waiting on <06788208> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <06788208> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x171AC108 nid=0x5a4 runnable [190ef000..190efd88] at java.lang.Object.wait(Native Method) - waiting on <05774DB8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <05774DB8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Java indexing" daemon prio=4 tid=0x17073A10 nid=0x520 in Object.wait() [17b6f000..17b6fd88] at java.lang.Object.wait(Native Method) - waiting on <045E0CC0> (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:325) - locked <045E0CC0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:536) "Signal Dispatcher" daemon prio=10 tid=0x008F8818 nid=0x598 waiting on condition [0..0] "Finalizer" daemon prio=9 tid=0x008F7E18 nid=0x408 in Object.wait() [16c0f000..16c0fd88] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <03E31CE0> (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=0x008F6990 nid=0x56c in Object.wait() [16bcf000..16bcfd88] at java.lang.Object.wait(Native Method) - waiting on <03E31D48> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:426) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113) - locked <03E31D48> (a java.lang.ref.Reference$Lock) "main" prio=7 tid=0x00234DA0 nid=0x1cc runnable [6e000..6fc40] at java.lang.Object.wait(Native Method) - waiting on <02B37850> (a org.eclipse.core.internal.jobs.ImplicitJobs$ThreadJob) at org.eclipse.core.internal.jobs.ImplicitJobs$ThreadJob.joinRun (ImplicitJobs.java:115) - locked <02B37850> (a org.eclipse.core.internal.jobs.ImplicitJobs$ThreadJob) at org.eclipse.core.internal.jobs.ImplicitJobs.begin (ImplicitJobs.java:240) at org.eclipse.core.internal.jobs.JobManager.beginRule (JobManager.java:116) at org.eclipse.core.internal.resources.WorkManager.checkIn (WorkManager.java:105) at org.eclipse.core.internal.resources.Workspace.prepareOperation (Workspace.java:1516) at org.eclipse.core.internal.resources.Workspace.run (Workspace.java:1549) at org.eclipse.ui.actions.WorkspaceModifyOperation.run (WorkspaceModifyOperation.java:105) - locked <02B37800> (a org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation) at org.eclipse.ui.editors.text.WorkspaceOperationRunner.run (WorkspaceOperationRunner.java:72) at org.eclipse.ui.editors.text.WorkspaceOperationRunner.run (WorkspaceOperationRunner.java:62) at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation (TextFileDocumentProvider.java:387) at org.eclipse.ui.editors.text.TextFileDocumentProvider.validateState (TextFileDocumentProvider.java:812) at org.eclipse.ui.texteditor.AbstractTextEditor.validateState (AbstractTextEditor.java:3035) at org.eclipse.ui.texteditor.AbstractTextEditor$16.run (AbstractTextEditor.java:3080) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:84) at org.eclipse.ui.texteditor.AbstractTextEditor.validateEditorInputState (AbstractTextEditor.java:3075) at org.eclipse.ui.texteditor.AbstractTextEditor$ElementStateListener$Validator.veri fyText(AbstractTextEditor.java:212) at org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:193) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:871) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:856) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:664) at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:5947) at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:6931) at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2554) at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5300) at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5323) at org.eclipse.swt.custom.StyledText$8.handleEvent(StyledText.java:5070) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:847) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:871) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:856) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1716) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1712) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3029) at org.eclipse.swt.widgets.Control.windowProc(Control.java:2932) at org.eclipse.swt.widgets.Display.windowProc(Display.java:2712) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1361) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1875) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1405) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1381) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench (Workbench.java:237) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:139) at org.eclipse.ui.internal.ide.IDEApplication.run (IDEApplication.java:47) 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:299) at org.eclipse.core.launcher.Main.run(Main.java:767) at org.eclipse.core.launcher.Main.main(Main.java:601)

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