tuscany-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Caroline Maynard (JIRA)" <tuscany-...@ws.apache.org>
Subject [jira] Updated: (TUSCANY-1203) Yet another AccessViolation in DataObjectImpl::~DataObjectImpl
Date Thu, 05 Apr 2007 22:03:36 GMT

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

Caroline Maynard updated TUSCANY-1203:
--------------------------------------

    Patch Info: [Patch Available]

I'vve added to 1147 a combined patch for 1147, 1202 and 1203, which should be simpler to apply.

> Yet another AccessViolation in DataObjectImpl::~DataObjectImpl
> --------------------------------------------------------------
>
>                 Key: TUSCANY-1203
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1203
>             Project: Tuscany
>          Issue Type: Bug
>          Components: C++ SDO
>    Affects Versions: Cpp-current
>         Environment: PHP 
>            Reporter: Caroline Maynard
>         Attachments: Tuscany-1203.patch
>
>
> This one occurs when deleting a DataObject which has several open properties. The logic
in the destructor is: 
>   while (i != PropertyValues.end()) 
>         {
>             unsigned int pindx = (*i).first;
>             DataObjectImplPtr dol = (*i).second;
>             unset(pindx);
>             i = PropertyValues.begin();
>             if (i != PropertyValues.end() && (*i).first == pindx )
>             {
>                 // unset has not removed the item from the list - do it 
>                 // here instead
>                 PropertyValues.erase(i);
>                 i = PropertyValues.begin();
>             }
>         }
> However what happens in the unset() method is that if the property is open, undefineProperty()
is called. This removes the open property and "shuffles up" the rest, so that a different
property is assigned the property index pindx. Which means that even though the unset has
removed the item from the list, the test (*).first==pindx  passes, which results in the next
property being removed from the list even though it has not yet been unset. 

-- 
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: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Mime
View raw message