[
https://issues.apache.org/jira/browse/TUSCANY-1574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David T. Adcox updated TUSCANY-1574:
------------------------------------
Attachment: 1574.patch
This patch embodies the changes described in the body of this JIRA.
> SDOXSDEcoreBuilder.createResourceSet() is not thread safe
> ---------------------------------------------------------
>
> Key: TUSCANY-1574
> URL: https://issues.apache.org/jira/browse/TUSCANY-1574
> Project: Tuscany
> Issue Type: Bug
> Components: Java SDO Implementation
> Affects Versions: Java-SDO-1.0
> Environment: n/a
> Reporter: David T. Adcox
> Fix For: Java-SDO-Next
>
> Attachments: 1574.patch
>
>
> The method createResourceSet() in SDOXSDEcoreBuilder is not thread safe. It
> performs an enumeration of EPackage resource objects and adds them to the
> ResourceSet created within the method. The problem is that a ResourceSet
> object is a container. So, when the Resource objects are added with this
> statement:
> resources.add(resource);
> EMF attempts to first unlink the resource from its previous container. That
> in itself is an issue, but beyond that, during a stress run, the unlinking
> can occur simultaneously on multiple threads, causing exceptions. This code
> was added for Tuscany-513. I'm not clear what are the goals, but I was
> wondering if we can accomplish the same task in another manner. The goal
> seems to be to expose the newly created ResourceSet to the built-in models.
> Perhaps this pattern from DataObjectUtil.configureResourceSet would work:
> resourceSet.setPackageRegistry(new
> EPackageRegistryImpl(HelperContextImpl.getBuiltInModelRegistry()));
> Would this line of code accomplish a similar function?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]