[
https://issues.apache.org/jira/browse/TUSCANY-826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12471425
]
Frank Budinsky commented on TUSCANY-826:
----------------------------------------
> containment cycle prevention (making the check with each update to a
> containment property - through the various mechanisms that such may be
> updated) would be far too expensive.
Finding and changing all the places that need this check is expensive, but not
the reason for not wanting to do this. The main problem is the performance
overhead of the check - the overhead is proportional to the depth of the
containment tree being added to, so it can get very expensive.
> The plan is instead to check for containment cycles during serialization.
The plan is to see if we can make the code work without noticable performance
overhead anywhere. We don't want to simply move the performance overhead to the
serializer.
> I'm told that the offending statement (quoted above) will not be present in
> the subsequent spec.
That hasn't been agreed to yet. It is a proposal that I am hoping to see
adopted.
> Containment cycle should result in Exception
> --------------------------------------------
>
> Key: TUSCANY-826
> URL: https://issues.apache.org/jira/browse/TUSCANY-826
> Project: Tuscany
> Issue Type: Bug
> Components: Java SDO Implementation
> Affects Versions: Java-SDO-Mx
> Environment: Windows XP, both Sun and IBM JVMs
> Reporter: Brian Murray
> Fix For: Java-SDO-Mx
>
> Attachments: ContainmentCycleError.java
>
>
> Near the bottom of page 19 in the 2.0.1 specification it is stated that
> "Containment cannot have cycles. If a set or add would create a containment
> cycle an exception is thrown."
> However, I have found that no such exception is thrown. I will attach a test
> case showing the creation of (and the potential to infinitely loop through) a
> containment cycle.
--
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]