Bug 68143 - Expanding project explorer is blocked by AllTypesCache
Summary: Expanding project explorer is blocked by AllTypesCache
Status: RESOLVED WONTFIX
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 3.0 RC2   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-06-22 04:29 EDT by Panagiotis Korros CLA
Modified: 2004-10-27 06:48 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Panagiotis Korros CLA 2004-06-22 04:29:23 EDT
I don't know if this is really a bug or expected behaviour but in RC2 I didn't
had this problem. Now I have it everytime I start eclipse.

Steps:
1. I open eclipse
2. After eclipse is opened I try to expand a java project in the package explorer.
3. I see a dialog that says: the user operation is waiting for a background work
to complete. The background job is: Java - Eclipse Platform

If this is expected behaviour then the user should see a better explanation than
'Java - Eclipse Platform'.


Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode):

"All Types Caching" prio=4 tid=0x1c73f488 nid=0x410 runnable [1e07f000..1e07fd88]
        at org.tigris.subversion.javahl.SVNClient.singleStatus(Native Method)
        at
org.tigris.subversion.javahl.SVNClientSynchronized.singleStatus(SVNClientSynchronized.java:101)
        - locked <0x191a47d0> (a java.lang.Class)
        at
org.tigris.subversion.svnclientadapter.javahl.JhlClientAdapter.getStatus(JhlClientAdapter.java:378)
        at
org.tigris.subversion.subclipse.core.resources.LocalResourceStatusCache.updateStatusSet(LocalResourceStatusCache.java:121)
        at
org.tigris.subversion.subclipse.core.resources.LocalResourceStatusCache.getStatus(LocalResourceStatusCache.java:173)
        at
org.tigris.subversion.subclipse.core.resources.LocalResource.getStatus(LocalResource.java:159)
        at
org.tigris.subversion.subclipse.core.resources.LocalResource.hasRemote(LocalResource.java:152)
        at
org.tigris.subversion.subclipse.core.SVNTeamProvider.setProject(SVNTeamProvider.java:78)
        at
org.eclipse.team.core.RepositoryProvider.mapNewProvider(RepositoryProvider.java:176)
        at
org.eclipse.team.core.RepositoryProvider.mapExistingProvider(RepositoryProvider.java:205)
        at
org.eclipse.team.core.RepositoryProvider.getProvider(RepositoryProvider.java:409)
        at
org.eclipse.team.internal.core.TeamHookDispatcher.getProvider(TeamHookDispatcher.java:71)
        at
org.eclipse.team.internal.core.TeamHookDispatcher.getRuleFactory(TeamHookDispatcher.java:79)
        at org.eclipse.core.internal.resources.Rules.factoryFor(Rules.java:86)
        at org.eclipse.core.internal.resources.Rules.modifyRule(Rules.java:121)
        at org.eclipse.core.internal.resources.Project.touch(Project.java:954)
        at
org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation(SetClasspathOperation.java:280)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:744)
        at
org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2650)
        at org.eclipse.jdt.core.JavaCore$3.run(JavaCore.java:3433)
        at
org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:34)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3246)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:3416)
        at
com.genuitec.eclipse.j2eedt.core.J2EEContainerInitializer.initialize(Unknown Source)
        at
org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1261)
        at
org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:1226)
        at
org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:833)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1184)
        at
org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1888)
        at
org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1798)
        at
org.eclipse.jdt.internal.core.search.JavaSearchScope.add(JavaSearchScope.java:78)
        at
org.eclipse.jdt.internal.core.search.JavaWorkspaceScope.initialize(JavaWorkspaceScope.java:80)
        at
org.eclipse.jdt.internal.core.search.JavaSearchScope.<init>(JavaSearchScope.java:52)
        at
org.eclipse.jdt.internal.core.search.JavaWorkspaceScope.<init>(JavaWorkspaceScope.java:31)
        at
org.eclipse.jdt.core.search.SearchEngine.createWorkspaceScope(SearchEngine.java:423)
        at
org.eclipse.jdt.internal.corext.util.AllTypesCache.search(AllTypesCache.java:531)
        at
org.eclipse.jdt.internal.corext.util.AllTypesCache$TypeCacher.doSearchTypes(AllTypesCache.java:197)
        at
org.eclipse.jdt.internal.corext.util.AllTypesCache$TypeCacher.run(AllTypesCache.java:166)

"Keep-Alive-Timer" daemon prio=9 tid=0x1c93ee28 nid=0x830 waiting on condition
[1d83f000..1d83fd88]
        at java.lang.Thread.sleep(Native Method)
        at sun.net.www.http.KeepAliveCache.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

"Worker-3" prio=5 tid=0x1c324e38 nid=0x270 in Object.wait() [1d79f000..1d79fd88]

        at java.lang.Object.wait(Native Method)
        - waiting on <0x10c4aa08> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
        - locked <0x10c4aa08> (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=5 tid=0x1c34ce88 nid=0x53c in Object.wait() [1d75f000..1d75fd88]

        at java.lang.Object.wait(Native Method)
        - waiting on <0x10c4aa08> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
        - locked <0x10c4aa08> (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-1" prio=5 tid=0x1c3a4d58 nid=0x284 in Object.wait() [1d71f000..1d71fd88]

        at java.lang.Object.wait(Native Method)
        - waiting on <0x10c4aa08> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
        - locked <0x10c4aa08> (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)

"Java indexing" daemon prio=4 tid=0x1c681508 nid=0x798 in Object.wait()
[1d43f000..1d43fd88]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x11117730> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Object.wait(Unknown Source)
        at
org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:338)
        - locked <0x11117730> (a
org.eclipse.jdt.internal.core.search.indexing.IndexManager)
        at java.lang.Thread.run(Unknown Source)

"Reference Cleaner - 2" prio=7 tid=0x1c60bb60 nid=0x934 in Object.wait()
[1d2cf000..1d2cfd88]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1104c940> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x1104c940> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)

"Reference Cleaner - 1" prio=7 tid=0x1c60a928 nid=0x5e4 in Object.wait() [1d28f0
00..1d28fd88]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1104c9b0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x1104c9b0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at
org.eclipse.jface.action.ActionContributionItem$ImageCache$ReferenceCleanerThread.run(ActionContributionItem.java:207)

"Worker-0" prio=5 tid=0x1c5b46e8 nid=0x7a0 in Object.wait() [1d24f000..1d24fd88]

        at java.lang.Object.wait(Native Method)
        - waiting on <0x10c4aa08> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:166)
        - locked <0x10c4aa08> (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)

"Start Level Event Dispatcher" daemon prio=5 tid=0x1c408008 nid=0x880 in Object.
wait() [1c57f000..1c57fd88]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x10ac8d98> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
        at java.lang.Object.wait(Unknown Source)
        at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
        - locked <0x10ac8d98> (a org.eclipse.osgi.framework.eventmgr.EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)

"OSGi Console" prio=5 tid=0x1c408cb0 nid=0x3bc in Object.wait() [1c53f000..1c53fd88]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x10ac0ce0> (a java.lang.Object)
        at
org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(FrameworkConsole.java:264)
        - locked <0x10ac0ce0> (a java.lang.Object)
        at
org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(FrameworkConsole.java:236)
        at
org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:207)
        at java.lang.Thread.run(Unknown Source)

"Framework Event Dispatcher" daemon prio=5 tid=0x00991660 nid=0x9a0 in Object.wa
it() [1c4ff000..1c4ffd88]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x10ac0d60> (a
org.eclipse.osgi.framework.eventmgr.EventThread)
        at java.lang.Object.wait(Unknown Source)
        at
org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162)
        - locked <0x10ac0d60> (a org.eclipse.osgi.framework.eventmgr.EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100)

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

"Finalizer" daemon prio=9 tid=0x0091c208 nid=0x938 in Object.wait()
[1c1af000..1c1afd88]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x109eae40> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x109eae40> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

"Reference Handler" daemon prio=10 tid=0x0091ad80 nid=0x984 in Object.wait()
[1c16f000..1c16fd88]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x109eaea8> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Unknown Source)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x109eaea8> (a java.lang.ref.Reference$Lock)

"main" prio=7 tid=0x00235a70 nid=0x70c in Object.wait() [6d000..6fc3c]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x116eb960> (a org.eclipse.core.internal.jobs.ThreadJob)
        at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:159)
        - locked <0x116eb960> (a org.eclipse.core.internal.jobs.ThreadJob)
        at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:87)
        at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:170)
        at
org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:95)
        at
org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:1628)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1668)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:744)
        at
org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:2650)
        at org.eclipse.jdt.core.JavaCore$3.run(JavaCore.java:3433)
        at
org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:34)
        at
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:700)
        at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673)
        at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3246)
        at org.eclipse.jdt.core.JavaCore.setClasspathContainer(JavaCore.java:3416)
        at
org.eclipse.jdt.internal.launching.JREContainerInitializer.initialize(JREContainerInitializer.java:51)
        at
org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:1261)
        at
org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:835)
        at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:1184)
        at
org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1888)
        at
org.eclipse.jdt.internal.core.JavaProject.findPackageFragmentRoots(JavaProject.java:1043)
        at
org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.rootsAndContainers(PackageExplorerContentProvider.java:154)
        at
org.eclipse.jdt.internal.ui.packageview.PackageExplorerContentProvider.getChildren(PackageExplorerContentProvider.java:135)
        at
org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$PackageExplorerProblemTreeViewer.getFilteredChildren(PackageExplorerPart.java:239)
        at
org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:588)
        at
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:359)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
        at
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:342)
        at
org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:754)
        at
org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:765)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:820)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:805)
        at org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:2074)
        at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:4004)
        at org.eclipse.swt.widgets.Composite.WM_NOTIFY(Composite.java:722)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3019)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:3298)
        at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
        at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:1391)
        at org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:170)
        at org.eclipse.swt.widgets.Tree.WM_LBUTTONDOWN(Tree.java:1668)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3001)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:3298)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1467)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2396)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1375)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1346)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:252)
        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:335)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:272)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:128)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:186)
        at org.eclipse.core.launcher.Main.run(Main.java:647)
        at org.eclipse.core.launcher.Main.main(Main.java:631)

"VM Thread" prio=5 tid=0x00955360 nid=0x288 runnable

"VM Periodic Task Thread" prio=10 tid=0x0023fd38 nid=0x198 waiting on condition

"Suspend Checker Thread" prio=10 tid=0x0091e510 nid=0x964 runnable
Comment 1 Philipe Mulet CLA 2004-06-22 06:41:40 EDT
Main thread is waiting on workspace lock, which is expected as another thread 
is in the middle of an operation while initializing containers ("All Types 
Caching" thread). However, this one cannot complete since subversion does seem 
to hang:

"All Types Caching" prio=4 tid=0x1c73f488 nid=0x410 runnable 
[1e07f000..1e07fd88]
    at org.tigris.subversion.javahl.SVNClient.singleStatus(Native Method)
    at org.tigris.subversion.javahl.SVNClientSynchronized.singleStatus
(SVNClientSynchronized.java:101)
    - locked <0x191a47d0> (a java.lang.Class)
    at org.tigris.subversion.svnclientadapter.javahl.JhlClientAdapter.getStatus
(JhlClientAdapter.java:378)
    at 
org.tigris.subversion.subclipse.core.resources.LocalResourceStatusCache.updateS
tatusSet(LocalResourceStatusCache.java:121)
    at 
org.tigris.subversion.subclipse.core.resources.LocalResourceStatusCache.getStat
us(LocalResourceStatusCache.java:173)
    at org.tigris.subversion.subclipse.core.resources.LocalResource.getStatus
(LocalResource.java:159)
    at org.tigris.subversion.subclipse.core.resources.LocalResource.hasRemote
(LocalResource.java:152)
    at org.tigris.subversion.subclipse.core.SVNTeamProvider.setProject
(SVNTeamProvider.java:78)
    at org.eclipse.team.core.RepositoryProvider.mapNewProvider
(RepositoryProvider.java:176)
    at org.eclipse.team.core.RepositoryProvider.mapExistingProvider
(RepositoryProvider.java:205)
    at org.eclipse.team.core.RepositoryProvider.getProvider
(RepositoryProvider.java:409)
    at org.eclipse.team.internal.core.TeamHookDispatcher.getProvider
(TeamHookDispatcher.java:71)
    at org.eclipse.team.internal.core.TeamHookDispatcher.getRuleFactory
(TeamHookDispatcher.java:79)
    at org.eclipse.core.internal.resources.Rules.factoryFor(Rules.java:86)
    at org.eclipse.core.internal.resources.Rules.modifyRule(Rules.java:121)
    at org.eclipse.core.internal.resources.Project.touch(Project.java:954)
    at org.eclipse.jdt.internal.core.SetClasspathOperation.executeOperation
(SetClasspathOperation.java:280)

I am not seeing any evidence on what subversion is waiting on. So I would 
redirect this defect to subversion bug databse.

Closing as not our bug.