| Summary: | CME in PageSite.activate | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Linuxhippy <linuxhippy> | ||||
| Component: | UI | Assignee: | Dean Roberts <dean.t.roberts> | ||||
| Status: | VERIFIED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | pwebster, remy.suen | ||||
| Version: | 3.7.1 | Flags: | pwebster:
review+
|
||||
| Target Milestone: | 3.7.2 | ||||||
| Hardware: | PC | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Linuxhippy
anybody? (In reply to comment #1) > anybody? Are you able to reproduce this problem consistently? no, but by looking at the source it should be possible to find out which collection entity has been modified concurrently. CME exceptions typically aren't reproduceable. Dean, could you please have a look for 3.7.2? PW Created attachment 206464 [details]
Fix CME
This change could mean that an activation will get fired, even if a deactivastion happened while the service was busy activating all the handlers it knows about.
The patch includes a piece of guard code to minimize the window where this could happen, but there is still a timing hole.
However, I believe that trying to close the timing hole properly would create a dead lock prone mess of synchronized calls.
I believe that, while not perfect, the fix performs better than the existing code where a CME is thrown and an undetermined number of handlers are not activated.
Released into R3_7_maintenance http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=0d6a529a609385ff6eb96ee5e40b51e828308659 cherry-picked into R3_development http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?id=38fcec61b72262842cf6bdfeda12c99247c72377 In M20120127-0800 PW |