| Summary: | Deadlock because ClasspathContainerVirtualComponent initialized Java too aggressively. | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [WebTools] WTP Java EE Tools | Reporter: | Jason Sholl <jsholl> | ||||
| Component: | jst.j2ee | Assignee: | Jason Sholl <jsholl> | ||||
| Status: | RESOLVED FIXED | QA Contact: | Chuck Bridgham <cbridgha> | ||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | david_williams | ||||
| Version: | 3.2 | Flags: | david_williams:
pmc_approved+
jsholl: pmc_approved? (raghunathan.srinivasan) jsholl: pmc_approved? (naci.dai) jsholl: pmc_approved? (deboer) jsholl: pmc_approved? (neil.hauge) jsholl: pmc_approved? (kaloyan) cbridgha: review+ |
||||
| Target Milestone: | 3.2.1 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows Server 2003 | ||||||
| Whiteboard: | PMC_approved | ||||||
| Attachments: |
|
||||||
|
Description
Jason Sholl
Created attachment 173303 [details]
patch for 3.2.1
Moves the JDT initialization portion to a lazily called init method. Simple synchronization ensures the two initialized variables are only set once. (Turns out this method calls back into itself).
approved * Explain why you believe this is a stop-ship defect. Or, if it is a "hotbug" (requested by an adopter) please document it as such.
Deadlock; and an easily reproducible one too.
* Is there a work-around? If so, why do you believe the work-around is insufficient?
No
* How has the fix been tested? Is there a test case attached to the bugzilla record? Has a JUnit Test been added?
UI & JUnits
* Give a brief technical overview. Who has reviewed this fix?
Moves the JDT initialization portion to a lazily called init method. Simple
synchronization ensures the two initialized variables are only set once.
(Turns out this method calls back into itself). Reviewed by Chuck and Jason
* What is the risk associated with this fix?
None
I guess by now, everyone knows my view of fixing deadlock problems ... fixing one, if if correct fix, may cause other threading issues to pop up ... so, hope scenarios that use this code can be tested extensively. Code checked into head for WTP 3.2.1 |