| Summary: | RemoveCrossReferences could throw ConcurrentModEx | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Modeling] EMF | Reporter: | Caspar D. <caspar_d> | ||||||
| Component: | cdo.core | Assignee: | Caspar D. <caspar_d> | ||||||
| Status: | CLOSED FIXED | QA Contact: | Eike Stepper <stepper> | ||||||
| Severity: | normal | ||||||||
| Priority: | P3 | CC: | saulius.tvarijonas | ||||||
| Version: | 4.0 | Flags: | stepper:
review+
|
||||||
| Target Milestone: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
|
Description
Caspar D.
See CDOTransactionImpl.removeCrossReferences(*). The removal of the referencedObject is done while iterating over the 'referencers' collection. This will cause a ConcurrentModEx if the referencedObject is itself also a referencer. Created attachment 187716 [details]
Patch v1
Patch moves removal out of the iteration by collecting the 'objectsToBeRemoved' in a list first. Created attachment 187717 [details]
Patch v2 - ready to be committed
Committed to trunk, rev. 6953 Available in R20110608-1407 |