Bug 50571 - search sender in hierarchy hangs
Summary: search sender in hierarchy hangs
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 major (vote)
Target Milestone: 3.0 M7   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-25 12:59 EST by Missing name CLA
Modified: 2004-02-12 13:42 EST (History)
0 users

See Also:


Attachments
Readable thread dump (11.02 KB, text/plain)
2004-02-02 10:18 EST, Jerome Lanneluc CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Missing name CLA 2004-01-25 12:59:19 EST
Environment is 3.0 M6.

When searching references to a method in the class hierarchy via the methods 
context menu in the outline view the system hangs.
Comment 1 Jerome Lanneluc CLA 2004-01-26 04:15:27 EST
Do you have steps to reproduce the problem? Or a thread dump?
Comment 2 Missing name CLA 2004-01-26 16:58:45 EST
My system seems to hang ALWAYS when i select "search  references" or "search 
declarations" for a method in hte classes hierarchy. No further log, there is 
no return...
Comment 3 Philipe Mulet CLA 2004-01-27 06:08:29 EST
Please provide console thread dump for further analysis or exact steps to 
reproduce this issue.

In order to do so: start Eclipse with Java console open, so that next time it 
occurs, you press ctrl-pause in console to trigger a thread dump which would be 
informative about what's going on.

You can start Eclipse with console open using -vm .../java.exe (instead of 
javaw.exe).

Please reopen once the required information is available.
Comment 4 Missing name CLA 2004-01-30 02:42:48 EST
i am sorry this is always taking so long....here is the dump:

Full thread dump Java HotSpot(TM) Client VM (1.4.2_01-b06 mixed mode):

"ModalContext" prio=7 tid=0x033cfac0 nid=0x590 waiting on condition 
[45df000..45dfd94]
        at java.lang.Thread.sleep(Native Method)
        at 
org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob
(JobManager.java:245)
        at 
org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.searchAllPos
sibleSubTypes(IndexBasedHi
        at 
org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.determinePos
sibleSubTypes(IndexBasedHi
        at 
org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.build
(IndexBasedHierarchyBuilder.java:
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.compute
(TypeHierarchy.java:319)
        at org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.refresh
(TypeHierarchy.java:1234)
        - locked <0x10683248> (a 
org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy)
        at 
org.eclipse.jdt.internal.core.CreateTypeHierarchyOperation.executeOperation
(CreateTypeHierarchyOperation.
        at org.eclipse.jdt.internal.core.JavaModelOperation.execute
(JavaModelOperation.java:364)
        at org.eclipse.jdt.internal.core.JavaModelOperation.run
(JavaModelOperation.java:703)
        at org.eclipse.jdt.internal.core.JavaElement.runOperation
(JavaElement.java:524)
        at org.eclipse.jdt.internal.core.SourceType.newTypeHierarchy
(SourceType.java:638)
        at org.eclipse.jdt.internal.core.search.HierarchyScope.initialize
(HierarchyScope.java:331)
        at org.eclipse.jdt.internal.core.search.HierarchyScope.encloses
(HierarchyScope.java:233)
        at 
org.eclipse.jdt.internal.core.search.pattern.InternalSearchPattern.findIndexMat
ches(InternalSearchPattern
        at 
org.eclipse.jdt.internal.core.search.pattern.InternalSearchPattern.findIndexMat
ches(InternalSearchPattern
        at 
org.eclipse.jdt.internal.core.search.pattern.InternalSearchPattern.findIndexMat
ches(InternalSearchPattern
        at org.eclipse.jdt.internal.core.search.PatternSearchJob.search
(PatternSearchJob.java:141)
        at org.eclipse.jdt.internal.core.search.PatternSearchJob.execute
(PatternSearchJob.java:72)
        at 
org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob
(JobManager.java:261)
        at 
org.eclipse.jdt.internal.core.search.pattern.InternalSearchPattern.findMatches
(InternalSearchPattern.java
        at org.eclipse.jdt.core.search.SearchEngine.search
(SearchEngine.java:729)
        at org.eclipse.jdt.core.search.SearchEngine.search
(SearchEngine.java:697)
        at org.eclipse.jdt.core.search.SearchEngine.search
(SearchEngine.java:678)
        at org.eclipse.jdt.internal.ui.search.JavaSearchOperation.execute
(JavaSearchOperation.java:97)
        at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run
(WorkspaceModifyOperation.java:91)
        at org.eclipse.core.internal.resources.Workspace.run
(Workspace.java:1555)
        at org.eclipse.ui.actions.WorkspaceModifyOperation.run
(WorkspaceModifyOperation.java:105)
        - locked <0x104cb300> (a 
org.eclipse.jdt.internal.ui.search.JavaSearchOperation)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:101)

"Metrics Notifier Thread" prio=5 tid=0x03407280 nid=0xe80 in Object.wait() 
[479f000..479fd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x143e6df0> (a net.sourceforge.metrics.builder.Semaphore)
        at java.lang.Object.wait(Unknown Source)
        at net.sourceforge.metrics.builder.Semaphore.P(Semaphore.java:40)
        - locked <0x143e6df0> (a net.sourceforge.metrics.builder.Semaphore)
        at net.sourceforge.metrics.builder.ProgressQueue.dequeue
(ProgressQueue.java:124)
        at net.sourceforge.metrics.builder.ProgressQueue.access$1
(ProgressQueue.java:123)
        at net.sourceforge.metrics.builder.ProgressQueue$NotifierThread.run
(ProgressQueue.java:145)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0339a940 
nid=0xba4 in Object.wait() [3cff000..
        at java.lang.Object.wait(Native Method)
        - waiting on <0x13a3aba0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0x13a3aba0> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x02ed74c0 
nid=0x624 in Object.wait() [39bf000..
        at java.lang.Object.wait(Native Method)
        - waiting on <0x1355e9e8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)
        at 
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run
(AbstractReconciler.java:161)
        - locked <0x1355e9e8> (a 
org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-1" prio=5 tid=0x032456a0 nid=0x684 in Object.wait() [397f000..397fd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12b082f8> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:184)
        - locked <0x12b082f8> (a org.eclipse.core.internal.jobs.WorkerPool)
        at org.eclipse.core.internal.jobs.WorkerPool.startJob
(WorkerPool.java:210)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

"Java indexing" daemon prio=7 tid=0x031637d0 nid=0xaac in Object.wait() 
[38ff000..38ffd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x14905fa0> (a 
org.eclipse.jdt.internal.core.search.indexing.ReadWriteMonitor)
        at java.lang.Object.wait(Unknown Source)
        at 
org.eclipse.jdt.internal.core.search.indexing.ReadWriteMonitor.enterWrite
(ReadWriteMonitor.java:48)
        - locked <0x14905fa0> (a 
org.eclipse.jdt.internal.core.search.indexing.ReadWriteMonitor)
        at 
org.eclipse.jdt.internal.core.search.indexing.IndexManager.saveIndexes
(IndexManager.java:524)
        at 
org.eclipse.jdt.internal.core.search.indexing.IndexManager.notifyIdle
(IndexManager.java:350)
        at org.eclipse.jdt.internal.core.search.processing.JobManager.run
(JobManager.java:333)
        at java.lang.Thread.run(Unknown Source)

"Start Level Event Dispatcher" daemon prio=5 tid=0x00a33108 nid=0xb7c in 
Object.wait() [30cf000..30cfd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12abcff0> (a 
org.eclipse.osgi.framework.eventmgr.EventThread)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent
(EventThread.java:169)
        - locked <0x12abcff0> (a 
org.eclipse.osgi.framework.eventmgr.EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventThread.run
(EventThread.java:120)

"Framework Event Dispatcher" daemon prio=5 tid=0x00a2c420 nid=0xddc in 
Object.wait() [308f000..308fd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12abd040> (a 
org.eclipse.osgi.framework.eventmgr.EventThread)
        at java.lang.Object.wait(Unknown Source)
        at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent
(EventThread.java:169)
        - locked <0x12abd040> (a 
org.eclipse.osgi.framework.eventmgr.EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventThread.run
(EventThread.java:120)

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

"Finalizer" daemon prio=9 tid=0x009bb250 nid=0xbc in Object.wait() 
[2d0f000..2d0fd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12abd168> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x12abd168> (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=0x009b9e20 nid=0x910 in Object.wait() 
[2ccf000..2ccfd94]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x12abd1d0> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Unknown Source)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x12abd1d0> (a java.lang.ref.Reference$Lock)

"main" prio=7 tid=0x000352f8 nid=0x930 runnable [7f000..7fc3c]
        at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method)
        at org.eclipse.swt.widgets.Display.sleep(Display.java:2608)
        at org.eclipse.jface.operation.ModalContext$ModalContextThread.block
(ModalContext.java:137)
        at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:261)
        at org.eclipse.jface.dialogs.ProgressMonitorDialog.run
(ProgressMonitorDialog.java:394)
        at org.eclipse.jdt.ui.actions.FindAction.run(FindAction.java:293)
        at org.eclipse.jdt.ui.actions.FindReferencesAction.run
(FindReferencesAction.java:84)
        at org.eclipse.jdt.ui.actions.FindAction.run(FindAction.java:221)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun
(SelectionDispatchAction.java:212)
        at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run
(SelectionDispatchAction.java:188)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:842)
        at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection
(ActionContributionItem.java:509)
        at org.eclipse.jface.action.ActionContributionItem.access$2
(ActionContributionItem.java:461)
        at org.eclipse.jface.action.ActionContributionItem$5.handleEvent
(ActionContributionItem.java:408)
        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.Display.runDeferredEvents(Display.java:2311)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1992)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1506)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1482)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:246)
        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.runtime.PlatformActivator$1.run
(PlatformActivator.java:226)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:85)
        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:279)
        at org.eclipse.core.launcher.Main.run(Main.java:742)
        at org.eclipse.core.launcher.Main.main(Main.java:581)

"VM Thread" prio=5 tid=0x009f76c0 nid=0x4c0 runnable

"VM Periodic Task Thread" prio=10 tid=0x009f8008 nid=0xa9c waiting on condition
"Suspend Checker Thread" prio=10 tid=0x009bd6f8 nid=0x518 runnable
Comment 5 Jerome Lanneluc CLA 2004-02-02 10:18:36 EST
Created attachment 7677 [details]
Readable thread dump
Comment 6 Jerome Lanneluc CLA 2004-02-02 12:18:22 EST
Changed IndexManager.saveIndexes() to not take the write lock to check if the 
index needs saving.
Comment 7 David Audel CLA 2004-02-12 13:42:14 EST
Verified 3.0M7