[ 
https://issues.apache.org/jira/browse/TUSCANY-1147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Caroline Maynard updated TUSCANY-1147:
--------------------------------------

    Attachment: Tuscany-1147.patch

OK, here's version 3. This one has the same code to fix the problem of the 
dangling reference. But it also deals with the problem mainfested in testcase 
b46617b. What's happening there (incidentally, that testcase was adapted from 
one of the PHP tests!) is that the employee of the month is also the CEO. Both 
CEO and EOTM are properties of the company type. When the company is discarded, 
it happens that the CEO property is unset first. Part of unsetting the CEO is 
to clear references, which include the EOTM. The code reenters the unset 
method, and the references array gets corrupted. My patch simply separates the 
loop for deleting the references from the loop for unsetting them, so avoids 
the corruption. 

> AccessViolation in DataObjectImpl::clearReferences()
> ----------------------------------------------------
>
>                 Key: TUSCANY-1147
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1147
>             Project: Tuscany
>          Issue Type: Bug
>          Components: C++ SDO
>    Affects Versions: Cpp-current
>         Environment: Win32, PHP 5.2.1
>            Reporter: Caroline Maynard
>            Priority: Critical
>         Attachments: SDOAPITest.php, Tuscany-1147.patch, Tuscany-1147.patch, 
> Tuscany-1147.patch
>
>
> Problem observed when SDO A refers to SDO B.  The reference to SDO A is 
> dropped. Then the reference to SDO B is dropped. An AccessViolation occurs in 
> the SDODataObject destructor, in DataObjectImpl::clearReferences().
> I believe this is because the reference was not properly cleared at the time 
> of A's destruction. 

-- 
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]

Reply via email to