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