Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 331330 - Validation cannot be used concurrently
Summary: Validation cannot be used concurrently
Status: RESOLVED WONTFIX
Alias: None
Product: EMF Services
Classification: Modeling
Component: Validation (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 normal
Target Milestone: ---   Edit
Assignee: Dummy Inbox for EMF CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-29 07:14 EST by Tim Baumgartner CLA
Modified: 2021-02-27 07:43 EST (History)
1 user (show)

See Also:


Attachments
Typical stack traces (4.10 KB, text/plain)
2010-11-29 07:19 EST, Tim Baumgartner CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tim Baumgartner CLA 2010-11-29 07:14:53 EST
Build Identifier: I20100608-0911

In principal, validation can easily be made parallel. Because of proxy objects, one has to call EcoreUtil.resolveAll().
However, doing so I got concurrent modification inside EMFT Validation:
The ModelValidationService singleton stores constraint proxies in a cache. When the first constraints are required, the proxies are replaced by the actual constraints. Since all AbstractCostraintProviders access the singleton, we have a problem. In subsequent validations, no exceptions are thrown because all proxies have been replaced.


Reproducible: Sometimes
Comment 1 Tim Baumgartner CLA 2010-11-29 07:19:01 EST
Created attachment 184030 [details]
Typical stack traces

I attached a file containing 3 stack traces with CME / AIOBE.
Comment 2 Pierre-Charles David CLA 2021-02-27 07:43:45 EST
EMF itself offers no guarantee on multi-thread access (https://wiki.eclipse.org/EMF/FAQ#Is_EMF_thread-safe.3F). Proxy resolution is only one of the aspects.