Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 317638

Summary: YieldRule changes to ModelManagerImpl affects performance
Product: [WebTools] WTP Source Editing Reporter: Cameron Bateman <cameron.bateman>
Component: wst.sseAssignee: wst.sse <wst.sse-inbox>
Status: CLOSED INVALID QA Contact: Nitin Dahyabhai <thatnitind>
Severity: normal    
Priority: P3 CC: carlin.rogers, raghunathan.srinivasan
Version: 3.2   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Rollbacks changes in deadlock avoidance to 3.1.1 stream. none

Description Cameron Bateman CLA 2010-06-22 16:14:34 EDT
I am launching this bug on behalf of Carlin Rogers who will update this bug when he returns to the office.
Comment 1 Cameron Bateman CLA 2010-06-22 16:17:36 EDT
Created attachment 172459 [details]
Rollbacks changes in deadlock avoidance to 3.1.1 stream.
Comment 2 Carlin Rogers CLA 2010-08-03 13:59:55 EDT
I am going to close this bug. It appears the underlying issue was Bug 320329.

In some adopter code have a call to the ModelManagerImpl.getModelForRead() passing in an IStructuredDocument. This ModelManagerImpl routine iterates across all existing models to compare document ids trying to find the associated model to return. When iterating across the models, if a model is not initialized, we wait for the load and call yieldRule. The issue in 320329 impacted the wait.

Thread [Worker-9] (Suspended)	
	ThreadJob.waitForRun(ThreadJob, IProgressMonitor, InternalJob, Thread)	
	ThreadJob.joinRun(ThreadJob, IProgressMonitor)
	JobManager.yieldRule(InternalJob, IProgressMonitor)
	QueueManagerJob$CommandSetJob(InternalJob).yieldRule(IProgressMonitor)
	QueueManagerJob$CommandSetJob(Job).yieldRule(IProgressMonitor)
	ModelManagerImpl$SharedObject.waitForLoadAttempt()	
	ModelManagerImpl.getExistingModel(Object)
	ModelManagerImpl.getExistingModelForRead(IDocument)
	ModelManagerImpl._getModelFor(IStructuredDocument, ModelManagerImpl$ReadEditType)
	ModelManagerImpl.getModelForRead(IStructuredDocument)
...


Closing this as the real root cause is 320329. Thanks.