[ http://issues.apache.org/jira/browse/TUSCANY-719?page=all ]

Pete Robbins resolved TUSCANY-719.
----------------------------------

    Fix Version/s: Cpp-current
       Resolution: Fixed

> Exception in SDO runtime on Windows using VC++ Express 2005
> -----------------------------------------------------------
>
>                 Key: TUSCANY-719
>                 URL: http://issues.apache.org/jira/browse/TUSCANY-719
>             Project: Tuscany
>          Issue Type: Bug
>          Components: C++ SDO
>    Affects Versions: Cpp-current
>         Environment: Windows and VC++ Express 2005
>            Reporter: Geoff Winn
>         Assigned To: Pete Robbins
>            Priority: Minor
>             Fix For: Cpp-current
>
>         Attachments: TUSCANY-jsd.patch
>
>
> Here's the Exception and call stack I'm getting from sdo_test on
> Windows, built with VC++ Express 2005:
>     msvcp80d.dll!104f9961()
>     [Frames below may be incorrect and/or missing, no symbols loaded
> for msvcp80d.dll]
>  >
> tuscany_sdo.dll!std::list<commonj::sdo::rdo,std::allocator<commonj::sdo::rdo>
>  >::_Const_iterator<1>::_Compat(const
> std::list<commonj::sdo::rdo,std::allocator<commonj::sdo::rdo>
>  >::_Const_iterator<1> & _Right={first=3452816845 second={...} })  Line
> 309 + 0x17 bytes    C++
> tuscany_sdo.dll!std::list<commonj::sdo::rdo,std::allocator<commonj::sdo::rdo>
>  >::_Const_iterator<1>::operator==(const
> std::list<commonj::sdo::rdo,std::allocator<commonj::sdo::rdo>
>  >::_Const_iterator<1> & _Right={first=3452816845 second={...} })  Line
> 290    C++
>     tuscany_sdo.dll!commonj::sdo::DataObjectImpl::~DataObjectImpl()
> Line 4564 + 0x37 bytes    C++
>     tuscany_sdo.dll!commonj::sdo::DataObjectImpl::`scalar deleting
> destructor'()  + 0x2b bytes    C++
>     tuscany_sdo.dll!commonj::sdo::RefCountingObject::releaseRef()  Line
> 69 + 0x4c bytes    C++
> sdo_test.exe!commonj::sdo::RefCountingPointer<commonj::sdo::DataObject>::~RefCountingPointer<commonj::sdo::DataObject>()
> Line 133 + 0x15 bytes    C++
>     sdo_test.exe!sdotest::scopetest()  Line 69 + 0x19 bytes    C++
>     sdo_test.exe!main(int argc=1, char * * argv=0x00386018)  Line 48 +
> 0x5 bytes    C++
>     sdo_test.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes    C
>     sdo_test.exe!mainCRTStartup()  Line 403    C
> The exception is raised in list.cpp - line 309:
>  #if _HAS_ITERATOR_DEBUGGING
>        void _Compat(const _Myt_iter& _Right) const
>            {    // test for compatible iterator pair
>            if (this->_Mycont == 0 || this->_Mycont != _Right._Mycont)
>                {
>                _DEBUG_ERROR("list iterators incompatible"); <---- There
>                _SCL_SECURE_TRAITS_INVALID_ARGUMENT;
>                }
>            }
> This is called from DataObjectImpl::~DataObjectImpl():
>         PropertyValueMap::iterator i = PropertyValues.begin();
>        while (i != PropertyValues.end())
>        {
>            unset((*i).first);
>            if (i == PropertyValues.begin())  <-- There
>            {
>                // unset has not removed the item from the list - do it
>                // here instead
>                PropertyValues.erase(i);
>            }
>            i = PropertyValues.begin();
>        }
> And I am a little puzzled by the code in the above loop... Although I
> didn't spend much time trying to grasp the logic here, and I have not
> been playing with C++ iterators too much lately, my experience is that
> removing entries from a collection that you're iterating on is usually a
> sure way to shoot yourself in the foot :) so I may be wrong but I sense
> a bug somewhere in this loop...

-- 
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]

Reply via email to