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] Created: (TUSCANY-1203) Yet another AccessViolation in DataObjectImpl::~DataObjectImpl
Date Thu, 05 Apr 2007 20:46:32 GMT
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


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