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;

            i = PropertyValues.begin();
            if (i != PropertyValues.end() && (*i).first == pindx )
                // unset has not removed the item from the list - do it 
                // here instead
                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

View raw message