You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Marco Kunze (JIRA)" <ax...@ws.apache.org> on 2005/09/06 13:23:32 UTC
[jira] Created: (AXISCPP-824) Axishandler crashes when releasing Memory
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
[jira] Commented: (AXISCPP-824) Axishandler crashes when releasing Memory
Posted by "Henrik Nordberg (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXISCPP-824?page=comments#action_12331308 ]
Henrik Nordberg commented on AXISCPP-824:
-----------------------------------------
Isn't this the same as http://issues.apache.org/jira/browse/AXISCPP-825 ??
> 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
[jira] Commented: (AXISCPP-824) Axishandler crashes when releasing Memory
Posted by "Chinthana Danapala (JIRA)" <ax...@ws.apache.org>.
[ 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
[jira] Assigned: (AXISCPP-824) Axishandler crashes when releasing Memory
Posted by "Chinthana Danapala (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXISCPP-824?page=all ]
Chinthana Danapala reassigned AXISCPP-824:
------------------------------------------
Assign To: Chinthana Danapala
> 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
> Assignee: Chinthana Danapala
> 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
[jira] Closed: (AXISCPP-824) Axishandler crashes when releasing Memory
Posted by "Chinthana Danapala (JIRA)" <ax...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/AXISCPP-824?page=all ]
Chinthana Danapala closed AXISCPP-824:
--------------------------------------
Resolution: Fixed
This has been solved in AXISCPP-825.
> 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
> Assignee: Chinthana Danapala
> 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