| Summary: | Use FastList for listener lists and do not exclude duplicate listener elements | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Modeling] EMF | Reporter: | Eike Stepper <stepper> | ||||||
| Component: | cdo.core | Assignee: | Eike Stepper <stepper> | ||||||
| Status: | CLOSED FIXED | QA Contact: | Eike Stepper <stepper> | ||||||
| Severity: | enhancement | ||||||||
| Priority: | P3 | ||||||||
| Version: | 4.1 | ||||||||
| Target Milestone: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | All | ||||||||
| Whiteboard: | Lighter, Faster and Better | ||||||||
| Attachments: |
|
||||||||
|
Description
Eike Stepper
Created attachment 203830 [details]
Patch v1
I'm going to rename FastList to Concurrent Array to better reflect its purpose. In addition I'll add a Unique subclass that ignores duplicate additions. It turned out that the three handler/filter lists in AbstractPlatform need to be unique because that class is a singleton and duplicate registrations are likely to occur. E.g. in the test suites thousands of trace handlers get registered, slowing down pace tremendously :P Created attachment 203845 [details]
Patch v2
Committed revision 9202: - trunk/plugins/org.eclipse.emf.cdo - trunk/plugins/org.eclipse.emf.cdo.common - trunk/plugins/org.eclipse.net4j.tests - trunk/plugins/org.eclipse.net4j.util Resolved Code like if(handlers!=null) is now meaningless. In CDOTransactionImpl.CDOCommitContextImpl.preCommit() the following must be used: if (handlers.length != 0) // !!! Committed revision 9421: - trunk/plugins/org.eclipse.emf.cdo - trunk/plugins/org.eclipse.net4j.util Committed revision 9473: - trunk/plugins/org.eclipse.net4j.tests Closing. |