Return-Path: Delivered-To: apmail-ws-tuscany-dev-archive@locus.apache.org Received: (qmail 24655 invoked from network); 5 Apr 2007 20:46:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Apr 2007 20:46:54 -0000 Received: (qmail 46764 invoked by uid 500); 5 Apr 2007 20:47:01 -0000 Delivered-To: apmail-ws-tuscany-dev-archive@ws.apache.org Received: (qmail 46453 invoked by uid 500); 5 Apr 2007 20:47:00 -0000 Mailing-List: contact tuscany-dev-help@ws.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: tuscany-dev@ws.apache.org Delivered-To: mailing list tuscany-dev@ws.apache.org Received: (qmail 46444 invoked by uid 99); 5 Apr 2007 20:47:00 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Apr 2007 13:47:00 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Apr 2007 13:46:52 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 4720071403D for ; Thu, 5 Apr 2007 13:46:32 -0700 (PDT) Message-ID: <6154736.1175805992271.JavaMail.jira@brutus> Date: Thu, 5 Apr 2007 13:46:32 -0700 (PDT) From: "Caroline Maynard (JIRA)" To: tuscany-dev@ws.apache.org Subject: [jira] Created: (TUSCANY-1203) Yet another AccessViolation in DataObjectImpl::~DataObjectImpl MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org 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