[ http://issues.apache.org/jira/browse/TUSCANY-554?page=comments#action_12453647 ] Andrew Borley commented on TUSCANY-554: ---------------------------------------
I believe I hit this issue when dealing with DataObjects in the SCA binding.ws. When axis returns from a ws call, the axiom node gets converted into a DO (call it DO1), and then the value or DO (DO2) within is returned to the calling component. So, when a DO is returned, DO2 is contained by DO1. Leaving the binding.ws code means that DO1 falls out of scope and is destroyed, but this destruction doesn't signal to DO2 that his container is no longer valid. So you can do DO2->getContainer() and get a pointer that looks good, but fails when you try to use it. So the code is something like: DataObjectPtr* do2 = new DataObjectPtr(); { DataObjectPtr do1 = axiomHelper->tosdo(axiom_doc, datafactory); *do2 = do1->getDataObject(0); } // do1 has fallen out of scope and is destroyed. // However, this call returns a good pointer DataObjectPtr container = do2->getContainer(); if(container) { // container is not 0, but this call causes a crash container->getType(); } Adding do2->detach() before do1 falls out of scope fixes this issue, but I think the destruction of do1 could be made to call detach() on any data objects that do1 contains > Opposite properties are not implemented > --------------------------------------- > > Key: TUSCANY-554 > URL: http://issues.apache.org/jira/browse/TUSCANY-554 > Project: Tuscany > Issue Type: Improvement > Components: C++ SDO > Affects Versions: Cpp-M1 > Environment: all > Reporter: Ed Slattery > Priority: Minor > Fix For: Cpp-current > > > Opposite properties are not implemented. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]