[ http://issues.apache.org/jira/browse/AXISCPP-824?page=comments#action_12331352 ]
Chinthana Danapala commented on AXISCPP-824: -------------------------------------------- Seems to me this problem have solved in issue AXISCPP-825. Could you check with the Axis-Nightlybuild? Thanks Chinthana > Axishandler crashes when releasing Memory > ----------------------------------------- > > Key: AXISCPP-824 > URL: http://issues.apache.org/jira/browse/AXISCPP-824 > Project: Axis-C++ > Type: Bug > Components: Parser Library - Xerces > Versions: 1.5 Final > Environment: Visual Studio 6.0, Windows 2000, Axis 1.5 and Xerces 2.6 > Reporter: Marco Kunze > Priority: Blocker > > We developed a Webservice using Axis C++ 1.5. > We tried out the Axis-Nightbuild 1.6 , Xerces 2.2, 2.6 and 2.7. > But the effect was the same when Deleting: > delete (const_cast <char*> (cp_PreviousNameOrValue)); > delete cp_CurrentNameOrValue; > The Handler crashes and throws an unknown Exception. We were able to isolate > the error, but the fix from 14.6. doesnt work. > Without freeing the Memory the code works fine. But we have to go productive > in one Month. There is about 20 KB of Data in one Element, so the memoryleak > sizes to a great amount. We tried to find an other workaround, but we were > not successful yet. You did one fix on that method, so we hope you can help > us. Sample Code and an example Soapmessage can be delivered. > void XercesHandler::characters(const XMLCh* const chars, > const unsigned int length) > { > const char* cp_PreviousNameOrValue = NULL; > if( m_pCurrElement && m_pCurrElement->m_pchNameOrValue) > { > if (m_pCurrElement->m_type == CHARACTER_ELEMENT) > cp_PreviousNameOrValue = m_pCurrElement->m_pchNameOrValue; > } > m_pCurrElement = m_pNextElement; > m_pNextElement->m_type = CHARACTER_ELEMENT; > > if (cp_PreviousNameOrValue) > { > char* cp_CurrentNameOrValue = XMLString::transcode(chars); > //char* cp_FullNameOrValue = (char*) > malloc(strlen(cp_PreviousNameOrValue) + strlen(cp_CurrentNameOrValue) + 1); > //Chinthana:Removed malloc > char* cp_FullNameOrValue = new > char[strlen(cp_PreviousNameOrValue) + strlen(cp_CurrentNameOrValue) + 1]; > cp_FullNameOrValue[0] = '\0'; > strcat(cp_FullNameOrValue, cp_PreviousNameOrValue); > strcat(cp_FullNameOrValue, cp_CurrentNameOrValue); > m_pNextElement->m_pchNameOrValue = (const char*)cp_FullNameOrValue; > //free(const_cast <char*> (cp_PreviousNameOrValue)); > //free(cp_CurrentNameOrValue); > //Chinthana:Removed free > delete (const_cast <char*> (cp_PreviousNameOrValue)); > delete cp_CurrentNameOrValue; > > //14/06/2005............................................................. > } > else > m_pNextElement->m_pchNameOrValue = XMLString::transcode(chars); > > } -- 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
