Bug 14094

Summary: Indexer: Deadlock on delete project
Product: [Eclipse Project] JDT Reporter: Martin Aeschlimann <martinae>
Component: CoreAssignee: Jerome Lanneluc <jerome_lanneluc>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: n.a.edgar
Version: 2.0   
Target Milestone: 2.0 M6   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Martin Aeschlimann CLA 2002-04-18 07:04:59 EDT
20020416:
Run JavaModelUtilTest from jdt.ui.tests.

The main thread is waiting for the indexer thread to be exiting.
The indexer thread is waiting to enter a synchronized method. lock taken by the 
main thread.

Indexer thread: Waiting at request
org.eclipse.jdt.internal.core.search.indexing.IndexManager
(org.eclipse.jdt.internal.core.search.processing.JobManager).request
(org.eclipse.jdt.internal.core.search.processing.IJob) line: 243
org.eclipse.jdt.internal.core.search.indexing.IndexManager.remove
(java.lang.String, org.eclipse.core.runtime.IPath) line: 340
org.eclipse.jdt.internal.core.search.indexing.RemoveFolderFromIndex.execute
(org.eclipse.core.runtime.IProgressMonitor) line: 51
org.eclipse.jdt.internal.core.search.indexing.IndexManager
(org.eclipse.jdt.internal.core.search.processing.JobManager).run() line: 298
java.lang.Thread.run() line: 539 [local variables unavailable]

Main thread:
java.lang.Thread.sleep(long) line: not available [native method]
org.eclipse.jdt.internal.core.search.indexing.IndexManager.discardJobsUntilNextP
rojectAddition(java.lang.String) line: 191
org.eclipse.jdt.internal.core.search.indexing.IndexManager.deleting
(org.eclipse.core.resources.IProject) line: 162
org.eclipse.jdt.internal.core.JavaModelManager.deleting
(org.eclipse.core.resources.IProject) line: 471
org.eclipse.jdt.internal.core.JavaModelManager.resourceChanged
(org.eclipse.core.resources.IResourceChangeEvent) line: 1099
org.eclipse.core.internal.events.NotificationManager$1.run() line: 123
org.eclipse.core.internal.runtime.InternalPlatform.run
(org.eclipse.core.runtime.ISafeRunnable) line: 838
org.eclipse.core.runtime.Platform.run(org.eclipse.core.runtime.ISafeRunnable) 
line: 411
org.eclipse.core.internal.events.NotificationManager.notify
(org.eclipse.core.internal.events.ResourceChangeListenerList$ListenerEntry[], 
org.eclipse.core.resources.IResourceChangeEvent, boolean) line: 138
org.eclipse.core.internal.events.NotificationManager.deleting
(org.eclipse.core.resources.IProject) line: 89
org.eclipse.core.internal.resources.Workspace.deleting
(org.eclipse.core.resources.IProject) line: 683
org.eclipse.core.internal.resources.Project
(org.eclipse.core.internal.resources.Resource).delete(int, 
org.eclipse.core.runtime.IProgressMonitor) line: 435
org.eclipse.core.internal.resources.Project.delete(boolean, boolean, 
org.eclipse.core.runtime.IProgressMonitor) line: 304
org.eclipse.jdt.testplugin.JavaProjectHelper.delete
(org.eclipse.jdt.core.IJavaProject) line: 91
.....
Comment 1 Jerome Lanneluc CLA 2002-04-25 12:22:01 EDT
Fixed by moving the waiting for the current job to finish outside the 
synchronization.
Comment 2 Martin Aeschlimann CLA 2002-04-30 04:59:56 EDT
*** Bug 14191 has been marked as a duplicate of this bug. ***