Bug 28671 - Refresh action taking minutes to complete
Summary: Refresh action taking minutes to complete
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Resources (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Rafael Chaves CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
: 30148 32739 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-12-19 09:46 EST by Philipe Mulet CLA
Modified: 2005-02-18 13:32 EST (History)
10 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2002-12-19 09:46:59 EST
Build 20021218

- Having a simple project (external project location) containing some resources.
- I ran a script outside, which results in modifying som (jacks test suite).
- Come back to Eclipse, and perform a refresh operation.

It takes about 5 minutes to complete, no progress, UI is frozen, during which I 
requested various thread dumps, see below.

Full thread dump Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode):

"ModalContext" prio=5 tid=0x14A8B718 nid=0xfc in Object.wait() 
[18caf000..18cafd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.ui.internal.Semaphore.acquire(Semaphore.java:20)
        - locked <08FD8E08> (a org.eclipse.ui.internal.Semaphore)
        at org.eclipse.ui.internal.UISynchronizer.syncExec
(UISynchronizer.java:34)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:1979)
        at org.eclipse.ui.views.tasklist.TaskListContentProvider.resourceChanged
(TaskListContentProvider.java:515)
        at org.eclipse.core.internal.events.NotificationManager$1.run
(NotificationManager.java:137)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:852)
        at org.eclipse.core.runtime.Platform.run(Platform.java:413)
        at org.eclipse.core.internal.events.NotificationManager.notify
(NotificationManager.java:152)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges
(NotificationManager.java:67)
        at org.eclipse.core.internal.resources.Workspace.broadcastChanges
(Workspace.java:153)
        at org.eclipse.core.internal.resources.Workspace.endOperation
(Workspace.java:869)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1569)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.run
(WorkspaceModifyOperation.java:79)
        - locked <085D2718> (a org.eclipse.ui.actions.WorkspaceAction$1)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:95)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148E53E0 
nid=0x6e8 in Object.wait() [18c1f000..18c1fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07F06DA8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C214E8 
nid=0x550 in Object.wait() [1766f000..1766fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07BEEFB8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C23A90 
nid=0x68c in Object.wait() [175ef000..175efd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <078BEE60> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14886DE0 
nid=0x4c4 in Object.wait() [1706f000..1706fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07672548> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C1FFD0 
nid=0x6c0 in Object.wait() [16fdf000..16fdfd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751CF38> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DFDF0 
nid=0x6c4 in Object.wait() [16f9f000..16f9fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751D0C8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x13AD5E48 
nid=0x26c runnable [16f5f000..16f5fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751D258> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DF708 
nid=0x6c8 runnable [16f1f000..16f1fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07483910> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DEEE8 
nid=0x594 runnable [16e9f000..16e9fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07483AA0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Debug async queue" prio=5 tid=0x148DD248 nid=0x59c in Object.wait() 
[16d4f000..16d4fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.debug.core.DebugPlugin$AsynchRunner.run
(DebugPlugin.java:722)
        - locked <0743FC50> (a org.eclipse.debug.core.DebugPlugin$AsynchRunner)
        at java.lang.Thread.run(Thread.java:536)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1487DA98 
nid=0x13c runnable [16a2f000..16a2fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <073491B0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x149E6CB0 
nid=0x69c runnable [1660f000..1660fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <06DE8350> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1382FBD0 
nid=0x464 runnable [14f6f000..14f6fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <04432A58> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Decoration" prio=2 tid=0x13720C98 nid=0x30c runnable [144cf000..144cfd8c]
        at org.eclipse.core.runtime.Path.computeHashCode(Path.java:323)
        at org.eclipse.core.runtime.Path.<init>(Path.java:83)
        at org.eclipse.core.runtime.Path.removeLastSegments(Path.java:711)
        at org.eclipse.core.internal.resources.Resource.getParent
(Resource.java:770)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.getResourceSyn
c(EclipseSynchronizer.java:205)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipsePhantomSynchronizer.getReso
urceSync(EclipsePhantomSynchronizer.java:130)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseResource.getSyncInfo
(EclipseResource.java:222)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseResource.isManaged
(EclipseResource.java:181)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseResource.isIgnored
(EclipseResource.java:115)
        at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.members
(EclipseFolder.java:73)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:460)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$1.run
(CVSLightweightDecorator.java:101)
        at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run
(EclipseSynchronizer.java:1112)
        at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.run
(EclipseFolder.java:352)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isDirty
(CVSLightweightDecorator.java:97)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isDirty
(CVSLightweightDecorator.java:118)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.decorate
(CVSLightweightDecorator.java:188)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate
(LightweightDecoratorDefinition.java:153)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations
(LightweightDecoratorManager.java:152)
        at org.eclipse.ui.internal.decorators.DecorationScheduler$3.run
(DecorationScheduler.java:286)
        at java.lang.Thread.run(Thread.java:536)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1372A810 
nid=0x34c runnable [1437f000..1437fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <042FE3F0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Java indexing" daemon prio=4 tid=0x135077F0 nid=0x74 waiting on condition 
[142ef000..142efd8c]
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobManager.java:322)
        at java.lang.Thread.run(Thread.java:536)

"Signal Dispatcher" daemon prio=10 tid=0x00904250 nid=0x4d4 waiting on 
condition [0..0]

"Finalizer" daemon prio=9 tid=0x008F8218 nid=0x518 in Object.wait() 
[133cf000..133cfd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <03A79018> (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=0x0023D3C0 nid=0x4a4 in Object.wait() 
[1338f000..1338fd8c]
        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 <03A79080> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00234D20 nid=0x414 runnable [6e000..6fc40]
        at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:1768)
        at org.eclipse.swt.widgets.TreeItem.getItems(TreeItem.java:394)
        at org.eclipse.jface.viewers.TreeViewer.getChildren(TreeViewer.java:113)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalFindItem
(AbstractTreeViewer.java:805)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalFindItem
(AbstractTreeViewer.java:808)
        at org.eclipse.jface.viewers.AbstractTreeViewer.doFindItem
(AbstractTreeViewer.java:320)
        at org.eclipse.jface.viewers.StructuredViewer.findItem
(StructuredViewer.java:289)
        at org.eclipse.jface.viewers.StructuredViewer.update
(StructuredViewer.java:1086)
        at org.eclipse.jface.viewers.StructuredViewer.update
(StructuredViewer.java:1051)
        at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged
(StructuredViewer.java:521)
        at 
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$JavaOutlineViewer.handleL
abelProviderChanged(JavaOutlinePage.java:632)
        at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged
(ContentViewer.java:68)
        at org.eclipse.ui.internal.decorators.DecoratorManager.fireListeners
(DecoratorManager.java:145)
        at 
org.eclipse.ui.internal.decorators.DecoratorManager.labelProviderChanged
(DecoratorManager.java:434)
        at org.eclipse.jface.viewers.LabelProvider.fireLabelProviderChanged
(LabelProvider.java:54)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.access$0
(CVSLightweightDecorator.java:1)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$3.run
(CVSLightweightDecorator.java:503)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:31)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages
(Synchronizer.java:94)
        - locked <0902C200> (a org.eclipse.swt.widgets.RunnableLock)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1669)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1414)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.block
(ModalContext.java:130)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:255)
        at org.eclipse.jface.dialogs.ProgressMonitorDialog.run
(ProgressMonitorDialog.java:351)
        at org.eclipse.ui.actions.WorkspaceAction.run(WorkspaceAction.java:271)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:769)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection
(ActionContributionItem.java:411)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent
(ActionContributionItem.java:365)
        at org.eclipse.jface.action.ActionContributionItem.access$0
(ActionContributionItem.java:356)
        at 
org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent
(ActionContributionItem.java:48)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:825)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1446)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1429)
        at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:845)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
        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:247)
        at org.eclipse.core.launcher.Main.run(Main.java:703)
        at org.eclipse.core.launcher.Main.main(Main.java:539)

"VM Thread" prio=5 tid=0x008DD968 nid=0x538 runnable

"VM Periodic Task Thread" prio=10 tid=0x008F8E10 nid=0x554 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x008FDAB0 nid=0x4b0 runnable
Full thread dump Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode):

"ModalContext" prio=5 tid=0x14A8B718 nid=0xfc in Object.wait() 
[18caf000..18cafd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.ui.internal.Semaphore.acquire(Semaphore.java:20)
        - locked <08FD8E08> (a org.eclipse.ui.internal.Semaphore)
        at org.eclipse.ui.internal.UISynchronizer.syncExec
(UISynchronizer.java:34)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:1979)
        at org.eclipse.ui.views.tasklist.TaskListContentProvider.resourceChanged
(TaskListContentProvider.java:515)
        at org.eclipse.core.internal.events.NotificationManager$1.run
(NotificationManager.java:137)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:852)
        at org.eclipse.core.runtime.Platform.run(Platform.java:413)
        at org.eclipse.core.internal.events.NotificationManager.notify
(NotificationManager.java:152)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges
(NotificationManager.java:67)
        at org.eclipse.core.internal.resources.Workspace.broadcastChanges
(Workspace.java:153)
        at org.eclipse.core.internal.resources.Workspace.endOperation
(Workspace.java:869)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1569)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.run
(WorkspaceModifyOperation.java:79)
        - locked <085D2718> (a org.eclipse.ui.actions.WorkspaceAction$1)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:95)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148E53E0 
nid=0x6e8 in Object.wait() [18c1f000..18c1fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07F06DA8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C214E8 
nid=0x550 in Object.wait() [1766f000..1766fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07BEEFB8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C23A90 
nid=0x68c in Object.wait() [175ef000..175efd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <078BEE60> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14886DE0 
nid=0x4c4 in Object.wait() [1706f000..1706fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07672548> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C1FFD0 
nid=0x6c0 in Object.wait() [16fdf000..16fdfd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751CF38> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DFDF0 
nid=0x6c4 runnable [16f9f000..16f9fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751D0C8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x13AD5E48 
nid=0x26c runnable [16f5f000..16f5fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751D258> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DF708 
nid=0x6c8 runnable [16f1f000..16f1fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07483910> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DEEE8 
nid=0x594 runnable [16e9f000..16e9fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07483AA0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Debug async queue" prio=5 tid=0x148DD248 nid=0x59c in Object.wait() 
[16d4f000..16d4fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.debug.core.DebugPlugin$AsynchRunner.run
(DebugPlugin.java:722)
        - locked <0743FC50> (a org.eclipse.debug.core.DebugPlugin$AsynchRunner)
        at java.lang.Thread.run(Thread.java:536)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1487DA98 
nid=0x13c runnable [16a2f000..16a2fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <073491B0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x149E6CB0 
nid=0x69c runnable [1660f000..1660fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <06DE8350> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1382FBD0 
nid=0x464 runnable [14f6f000..14f6fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <04432A58> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Decoration" prio=2 tid=0x13720C98 nid=0x30c runnable [144cf000..144cfd8c]
        at org.eclipse.core.internal.indexing.ObjectStore.removeFromCache
(ObjectStore.java:292)
        - waiting to lock <063037C8> (a java.util.LinkedList)
        at org.eclipse.core.internal.indexing.ObjectStore.acquireObject
(ObjectStore.java:222)
        at org.eclipse.core.internal.indexing.IndexedStore.acquireObject
(IndexedStore.java:70)
        at org.eclipse.core.internal.indexing.IndexedStore.acquireAnchor
(IndexedStore.java:45)
        at org.eclipse.core.internal.indexing.IndexCursor.find
(IndexCursor.java:85)
        - locked <062F64A0> (a org.eclipse.core.internal.indexing.IndexCursor)
        at org.eclipse.core.internal.indexing.IndexedStore.getIndex
(IndexedStore.java:260)
        - locked <062EE0D8> (a org.eclipse.core.internal.indexing.IndexedStore)
        at org.eclipse.core.internal.properties.IndexedStoreWrapper.getIndex
(IndexedStoreWrapper.java:122)
        - locked <062F60F8> (a 
org.eclipse.core.internal.properties.IndexedStoreWrapper)
        at org.eclipse.core.internal.properties.IndexedStoreWrapper.getCursor
(IndexedStoreWrapper.java:172)
        - locked <062F60F8> (a 
org.eclipse.core.internal.properties.IndexedStoreWrapper)
        at org.eclipse.core.internal.properties.PropertyStore.basicExists
(PropertyStore.java:45)
        at org.eclipse.core.internal.properties.PropertyStore.commonSet
(PropertyStore.java:111)
        - locked <062ED658> (a 
org.eclipse.core.internal.properties.PropertyStore)
        at org.eclipse.core.internal.properties.PropertyStore.set
(PropertyStore.java:426)
        at org.eclipse.core.internal.properties.PropertyManager.setProperty
(PropertyManager.java:171)
        - locked <062ED658> (a 
org.eclipse.core.internal.properties.PropertyStore)
        at org.eclipse.core.internal.resources.Resource.setPersistentProperty
(Resource.java:1087)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.internalSetDir
tyIndicator(EclipseSynchronizer.java:1159)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.setDirtyIndica
tor(EclipseSynchronizer.java:1133)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:477)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$1.run
(CVSLightweightDecorator.java:101)
        at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run
(EclipseSynchronizer.java:1112)
        at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.run
(EclipseFolder.java:352)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isDirty
(CVSLightweightDecorator.java:97)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isDirty
(CVSLightweightDecorator.java:118)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.decorate
(CVSLightweightDecorator.java:188)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate
(LightweightDecoratorDefinition.java:153)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations
(LightweightDecoratorManager.java:152)
        at org.eclipse.ui.internal.decorators.DecorationScheduler$3.run
(DecorationScheduler.java:286)
        at java.lang.Thread.run(Thread.java:536)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1372A810 
nid=0x34c runnable [1437f000..1437fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <042FE3F0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Java indexing" daemon prio=4 tid=0x135077F0 nid=0x74 waiting on condition 
[142ef000..142efd8c]
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobManager.java:322)
        at java.lang.Thread.run(Thread.java:536)

"Signal Dispatcher" daemon prio=10 tid=0x00904250 nid=0x4d4 waiting on 
condition [0..0]

"Finalizer" daemon prio=9 tid=0x008F8218 nid=0x518 in Object.wait() 
[133cf000..133cfd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <03A79018> (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=0x0023D3C0 nid=0x4a4 in Object.wait() 
[1338f000..1338fd8c]
        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 <03A79080> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00234D20 nid=0x414 runnable [6e000..6fc40]
        at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:1768)
        at org.eclipse.swt.widgets.TreeItem.getItems(TreeItem.java:403)
        at org.eclipse.jface.viewers.TreeViewer.getChildren(TreeViewer.java:113)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalFindItem
(AbstractTreeViewer.java:805)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalFindItem
(AbstractTreeViewer.java:808)
        at org.eclipse.jface.viewers.AbstractTreeViewer.doFindItem
(AbstractTreeViewer.java:320)
        at org.eclipse.jface.viewers.StructuredViewer.findItem
(StructuredViewer.java:289)
        at org.eclipse.jface.viewers.StructuredViewer.update
(StructuredViewer.java:1086)
        at org.eclipse.jface.viewers.StructuredViewer.update
(StructuredViewer.java:1051)
        at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged
(StructuredViewer.java:521)
        at 
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$JavaOutlineViewer.handleL
abelProviderChanged(JavaOutlinePage.java:632)
        at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged
(ContentViewer.java:68)
        at org.eclipse.ui.internal.decorators.DecoratorManager.fireListeners
(DecoratorManager.java:145)
        at 
org.eclipse.ui.internal.decorators.DecoratorManager.labelProviderChanged
(DecoratorManager.java:434)
        at org.eclipse.jface.viewers.LabelProvider.fireLabelProviderChanged
(LabelProvider.java:54)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.access$0
(CVSLightweightDecorator.java:1)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$3.run
(CVSLightweightDecorator.java:503)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:31)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages
(Synchronizer.java:94)
        - locked <0902C200> (a org.eclipse.swt.widgets.RunnableLock)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1669)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1414)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.block
(ModalContext.java:130)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:255)
        at org.eclipse.jface.dialogs.ProgressMonitorDialog.run
(ProgressMonitorDialog.java:351)
        at org.eclipse.ui.actions.WorkspaceAction.run(WorkspaceAction.java:271)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:769)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection
(ActionContributionItem.java:411)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent
(ActionContributionItem.java:365)
        at org.eclipse.jface.action.ActionContributionItem.access$0
(ActionContributionItem.java:356)
        at 
org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent
(ActionContributionItem.java:48)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:825)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1446)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1429)
        at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:845)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
        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:247)
        at org.eclipse.core.launcher.Main.run(Main.java:703)
        at org.eclipse.core.launcher.Main.main(Main.java:539)

"VM Thread" prio=5 tid=0x008DD968 nid=0x538 runnable

"VM Periodic Task Thread" prio=10 tid=0x008F8E10 nid=0x554 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x008FDAB0 nid=0x4b0 runnable
Full thread dump Java HotSpot(TM) Client VM (1.4.1_01-b01 mixed mode):

"ModalContext" prio=5 tid=0x14A8B718 nid=0xfc in Object.wait() 
[18caf000..18cafd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.ui.internal.Semaphore.acquire(Semaphore.java:20)
        - locked <08FD8E08> (a org.eclipse.ui.internal.Semaphore)
        at org.eclipse.ui.internal.UISynchronizer.syncExec
(UISynchronizer.java:34)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:1979)
        at org.eclipse.ui.views.tasklist.TaskListContentProvider.resourceChanged
(TaskListContentProvider.java:515)
        at org.eclipse.core.internal.events.NotificationManager$1.run
(NotificationManager.java:137)
        at org.eclipse.core.internal.runtime.InternalPlatform.run
(InternalPlatform.java:852)
        at org.eclipse.core.runtime.Platform.run(Platform.java:413)
        at org.eclipse.core.internal.events.NotificationManager.notify
(NotificationManager.java:152)
        at org.eclipse.core.internal.events.NotificationManager.broadcastChanges
(NotificationManager.java:67)
        at org.eclipse.core.internal.resources.Workspace.broadcastChanges
(Workspace.java:153)
        at org.eclipse.core.internal.resources.Workspace.endOperation
(Workspace.java:869)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1569)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.run
(WorkspaceModifyOperation.java:79)
        - locked <085D2718> (a org.eclipse.ui.actions.WorkspaceAction$1)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:95)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148E53E0 
nid=0x6e8 in Object.wait() [18c1f000..18c1fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07F06DA8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C214E8 
nid=0x550 in Object.wait() [1766f000..1766fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07BEEFB8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C23A90 
nid=0x68c runnable [175ef000..175efd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <078BEE60> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14886DE0 
nid=0x4c4 runnable [1706f000..1706fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07672548> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x14C1FFD0 
nid=0x6c0 runnable [16fdf000..16fdfd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751CF38> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DFDF0 
nid=0x6c4 runnable [16f9f000..16f9fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751D0C8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x13AD5E48 
nid=0x26c runnable [16f5f000..16f5fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0751D258> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DF708 
nid=0x6c8 runnable [16f1f000..16f1fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07483910> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x148DEEE8 
nid=0x594 runnable [16e9f000..16e9fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <07483AA0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Debug async queue" prio=5 tid=0x148DD248 nid=0x59c in Object.wait() 
[16d4f000..16d4fd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:426)
        at org.eclipse.debug.core.DebugPlugin$AsynchRunner.run
(DebugPlugin.java:722)
        - locked <0743FC50> (a org.eclipse.debug.core.DebugPlugin$AsynchRunner)
        at java.lang.Thread.run(Thread.java:536)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1487DA98 
nid=0x13c runnable [16a2f000..16a2fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <073491B0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x149E6CB0 
nid=0x69c runnable [1660f000..1660fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <06DE8350> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1382FBD0 
nid=0x464 runnable [14f6f000..14f6fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <04432A58> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Decoration" prio=2 tid=0x13720C98 nid=0x30c runnable [144cf000..144cfd8c]
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:176)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:70)
        at org.eclipse.core.internal.indexing.LogWriter.open(LogWriter.java:37)
        at org.eclipse.core.internal.indexing.LogWriter.putModifiedPages
(LogWriter.java:26)
        at org.eclipse.core.internal.indexing.PageStore.commit
(PageStore.java:209)
        at org.eclipse.core.internal.indexing.ObjectStore.commit
(ObjectStore.java:181)
        at org.eclipse.core.internal.indexing.IndexedStore.commit
(IndexedStore.java:137)
        - locked <062EE0D8> (a org.eclipse.core.internal.indexing.IndexedStore)
        at org.eclipse.core.internal.properties.IndexedStoreWrapper.commit
(IndexedStoreWrapper.java:86)
        - locked <062F60F8> (a 
org.eclipse.core.internal.properties.IndexedStoreWrapper)
        at org.eclipse.core.internal.properties.PropertyStore.commit
(PropertyStore.java:449)
        at org.eclipse.core.internal.properties.PropertyManager.setProperty
(PropertyManager.java:173)
        - locked <062ED658> (a 
org.eclipse.core.internal.properties.PropertyStore)
        at org.eclipse.core.internal.resources.Resource.setPersistentProperty
(Resource.java:1087)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.internalSetDir
tyIndicator(EclipseSynchronizer.java:1159)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.setDirtyIndica
tor(EclipseSynchronizer.java:1133)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:477)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determineDirtyCount
(EclipseFolder.java:465)
        at 
org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModified
(EclipseFolder.java:423)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$1.run
(CVSLightweightDecorator.java:101)
        at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run
(EclipseSynchronizer.java:1112)
        at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.run
(EclipseFolder.java:352)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isDirty
(CVSLightweightDecorator.java:97)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isDirty
(CVSLightweightDecorator.java:118)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.decorate
(CVSLightweightDecorator.java:188)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate
(LightweightDecoratorDefinition.java:153)
        at 
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations
(LightweightDecoratorManager.java:152)
        at org.eclipse.ui.internal.decorators.DecorationScheduler$3.run
(DecorationScheduler.java:286)
        at java.lang.Thread.run(Thread.java:536)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x1372A810 
nid=0x34c runnable [1437f000..1437fd8c]
        at java.lang.Object.wait(Native Method)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <042FE3F0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Java indexing" daemon prio=4 tid=0x135077F0 nid=0x74 waiting on condition 
[142ef000..142efd8c]
        at java.lang.Thread.sleep(Native Method)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobManager.java:322)
        at java.lang.Thread.run(Thread.java:536)

"Signal Dispatcher" daemon prio=10 tid=0x00904250 nid=0x4d4 waiting on 
condition [0..0]

"Finalizer" daemon prio=9 tid=0x008F8218 nid=0x518 in Object.wait() 
[133cf000..133cfd8c]
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <03A79018> (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=0x0023D3C0 nid=0x4a4 in Object.wait() 
[1338f000..1338fd8c]
        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 <03A79080> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00234D20 nid=0x414 runnable [6e000..6fc40]
        at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1219)
        at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:152)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:2766)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:2177)
        at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:1828)
        at org.eclipse.swt.widgets.TreeItem.getItems(TreeItem.java:405)
        at org.eclipse.jface.viewers.TreeViewer.getChildren(TreeViewer.java:113)
        at org.eclipse.jface.viewers.AbstractTreeViewer.internalFindItem
(AbstractTreeViewer.java:805)
        at org.eclipse.jface.viewers.AbstractTreeViewer.doFindItem
(AbstractTreeViewer.java:320)
        at org.eclipse.jface.viewers.StructuredViewer.findItem
(StructuredViewer.java:289)
        at org.eclipse.jface.viewers.StructuredViewer.update
(StructuredViewer.java:1086)
        at org.eclipse.jface.viewers.StructuredViewer.update
(StructuredViewer.java:1051)
        at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged
(StructuredViewer.java:521)
        at 
org.eclipse.jdt.internal.ui.javaeditor.JavaOutlinePage$JavaOutlineViewer.handleL
abelProviderChanged(JavaOutlinePage.java:632)
        at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged
(ContentViewer.java:68)
        at org.eclipse.ui.internal.decorators.DecoratorManager.fireListeners
(DecoratorManager.java:145)
        at 
org.eclipse.ui.internal.decorators.DecoratorManager.labelProviderChanged
(DecoratorManager.java:434)
        at org.eclipse.jface.viewers.LabelProvider.fireLabelProviderChanged
(LabelProvider.java:54)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.access$0
(CVSLightweightDecorator.java:1)
        at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$3.run
(CVSLightweightDecorator.java:503)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:31)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages
(Synchronizer.java:94)
        - locked <0902C200> (a org.eclipse.swt.widgets.RunnableLock)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1669)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1414)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.block
(ModalContext.java:130)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:255)
        at org.eclipse.jface.dialogs.ProgressMonitorDialog.run
(ProgressMonitorDialog.java:351)
        at org.eclipse.ui.actions.WorkspaceAction.run(WorkspaceAction.java:271)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:769)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection
(ActionContributionItem.java:411)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent
(ActionContributionItem.java:365)
        at org.eclipse.jface.action.ActionContributionItem.access$0
(ActionContributionItem.java:356)
        at 
org.eclipse.jface.action.ActionContributionItem$ActionListener.handleEvent
(ActionContributionItem.java:48)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:825)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1446)
        at org.eclipse.ui.internal.Workbench.run(Workbench.java:1429)
        at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:845)
        at org.eclipse.core.boot.BootLoader.run(BootLoader.java:462)
        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:247)
        at org.eclipse.core.launcher.Main.run(Main.java:703)
        at org.eclipse.core.launcher.Main.main(Main.java:539)
Comment 1 Philipe Mulet CLA 2002-12-19 10:00:41 EST
Actually, I indeed had a bunch of changes detected (had forgot to clean some 
stuff generated by scripts), but anyway, the freezing feels very bad.

Olivier has the steps to reproduce (need to run jacks test suite inside an 
Eclipse project, and then without cleaning results force Eclipse to refresh).

After I cleaned the extra files, refresh was quite fast to recover (numerous  
deletions is much faster than same amount of additions - also the progress bar 
did perform correctly when deleting).
Comment 2 DJ Houghton CLA 2003-01-23 12:21:54 EST
Rafael, please investigate. Thanks.
Comment 3 Rafael Chaves CLA 2003-01-30 16:50:52 EST
It's not clear if the external application changed existing resources or just 
added files in the project directory. Could you explain that?

Another question: when you say the UI was frozen: was the progress dialog  
showing up, and the cancel button responsive?

Last points: roughly speaking, about how many files externally created/changed 
are we talking here? And are they source files, class files, or just 
proprietary files which are generated by the application?

Thanks.
Comment 4 Philipe Mulet CLA 2003-01-31 06:19:31 EST
The script did generate a few thousand files on the file system, accounting for 
the slowness to surface them as resources.

However, no UI refresh did occur, no progress was shown, the windows did not 
redraw anymore for 5 minutes (I thought it was dead).
Comment 5 Jeff McAffer CLA 2003-02-10 11:34:56 EST
see also bug 28343 and bug 28671 and bug 28416
Comment 6 Jeff McAffer CLA 2003-02-10 11:44:08 EST
see also bug 29944
Comment 7 Kevin McGuire CLA 2003-02-11 18:41:43 EST
Wow, lots of stuff in there!
Its possible that CVS is partially to blame, but decoration happens in the 
background decorator thread and so shouldn't cause UI freeze.  There is work 
that we do for delta processing (and thus in the UI thread), but I didn't see 
that here.

Is this a single thread dump?  I count three decorator threads (for example, 
there are three threads with
org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations).
Comment 8 Jeff McAffer CLA 2003-02-11 20:23:53 EST
There are actually three stack dumps all concatenated together (search 
for "mixed mode" to find the top of each).  It would have been better if they 
were attached as separate or zip'd together files but...
Also, it is unclear how much time is involved between the traces.  Anyway, the 
three traces show exactly the same behaviour.  

There is a ModalContext thread which is the one that did the operation.  It is 
broadcasting the delta to resource change listeners.

There is the Decorator thread which is busy counting the number of dirty 
resources and setting a persistent property.

There is the Main (UI) thread which is processing an exec to handle a label 
changed event.

So it is a bummer that all this work is going on but I agree, it should not 
cause the UI to lock up dramatically.  The only things I can think of are:
- the syncExec() call in the ModalContext thread.  
- that combined with the decorators spewing lots of label changed events onto 
the async queue effectively starving the paints and the like.

Could be two separate bugs?
Comment 9 Rafael Chaves CLA 2003-02-17 17:22:45 EST
From the refresh local operation perspective, the problem is that resource 
change listeners are taking too much time to do their work. I could observe the 
following situations where this occur:

a) the listener (TaskListContentProvider/WorkbenchContentProvider) passes a 
runnable to #syncExec and waits too long to have a chance to be executed (> 
10s) - probably caused by resource decoration generating lots of changes in the 
UI;
b) the listener (WorkbenchContentProvider) passes a runnable to #syncExec that 
takes too much time to finish (> 10s).

The decorator thread eventually blocks trying to execute a Workspace operation, 
and then stops flooding the UI events queue and allows the call to #syncExec to 
complete (what only happens *after* there is no more UI events to be processed).

Resource change listeners should complete their work quickly. If the time for 
processing the delta depends so much on the delta size, it should be done 
asynchronously (using a copy of the delta). This would also avoid the time 
taken by a refresh operation depend on the traffic in the UI event queue (what 
is bad).

Nick, isn't it possible for UI to avoid the use of syncExec in their resource 
change listeners?
Comment 10 Kevin McGuire CLA 2003-02-18 15:54:15 EST
Team is making a changes that hopefully should considerably improve the 
performance here:

1. We are sending more label updates than we need to (mostly for markers).  We 
are going to interogate the delta more closely

2. We are no longer using persistent properties to remember dirty state
Comment 11 Rafael Chaves CLA 2003-02-19 11:15:50 EST
Bug 30148 shows a slightly different scenario: it is also a refresh, but the 
listeners have already been notified, and the workspace operation "blocks" when 
calling IProgressMonitor#done - which, by its turn, calls Display#syncExec - 
and, again, the UI thread is too busy to run any synchronous Runnable.
Comment 12 John Arthorne CLA 2003-02-20 11:31:44 EST
*** Bug 30148 has been marked as a duplicate of this bug. ***
Comment 13 John Arthorne CLA 2003-02-24 13:50:24 EST
*** Bug 32739 has been marked as a duplicate of this bug. ***
Comment 14 Rafael Chaves CLA 2003-03-10 11:50:56 EST
Good news: the refresh operation with RC2 is taking 16s for discovering 5000 
new files in a CVS-shared project (it was usually taking around 60s - most of 
it notifying listeners or finishing the operation). Looks like recent VCM/UI 
work has finally paid off.

Comment 15 Rafael Chaves CLA 2003-04-04 15:27:36 EST
Olivier/Philippe: could one of you verify if the behaviour has effectively 
improved in your scenario using 2.1? 

I tried to create a similar test case (see comment 14 above), and noticed good 
improvements: the operation total time took 25% of the previous time, and 
while the progress dialog is showing, the rest of the UI is visibly reflecting 
the changes (repopulating package explorer / resource navigator tree view), 
instead of freezing.
Comment 16 Olivier Thomann CLA 2003-04-04 15:30:46 EST
I can confirm that this behavior has been improved.
Comment 17 Rafael Chaves CLA 2003-04-04 15:48:16 EST
Thanks. Closing. Will reopen if anybody has a scenario where the problem still 
occurs (2.1) while refreshing.