[
https://issues.apache.org/jira/browse/AXISCPP-989?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
nadir amra reassigned AXISCPP-989:
----------------------------------
Assignee: nadir amra
> Memory leak in Clients after arrays are serialized
> --------------------------------------------------
>
> Key: AXISCPP-989
> URL: https://issues.apache.org/jira/browse/AXISCPP-989
> Project: Axis-C++
> Issue Type: Bug
> Components: Serialization
> Affects Versions: 1.6 Final
> Environment: Observed on Linux and Solaris.
> Reporter: Niall Kelly
> Assigned To: nadir amra
>
> When an array of elements is serialized on the client side prior to invoking
> an operation, memory is leaked.
> In the SoapSerializer::addOutputCmplxArrayParam method, the pArray argument
> is cloned (pLocalArray), after which the clone is used as an argument of
> makeArrayBean. The internal array associated with the clone is then
> "de-coupled" before pLocalArray is destroyed. At this point the new ArrayBean
> object assumes ownership for the array memory.
> At some point after serialization the ArrayBean object is destroyed. However
> it's constructor does not delete the memory associated with the array and the
> elements it contains. In the extract below from ~ArrayBean, the check for
> AxisEngine::m_bServer prevents the array from being deleted (for applications
> on the client side).
> // Extract from ~ArrayBean
> if (USER_TYPE == m_type)
> {
> if (m_value.cta)
> {
> if (m_value.cta->pObject)
> {
> if (AxisEngine::m_bServer)
> {
> m_value.cta->pDelFunct(m_value.cta->pObject, true,
> m_nSize);
> }
> // make sure that the ComplexObjectHandler's destructor does
> // not try to delete the objects again
> m_value.cta->pObject = NULL;
> }
> delete m_value.cta;
> m_value.cta = NULL;
> }
> }
> Perhaps this memory leak can be fixed by simple removing that check for
> AxisEngine::m_bServer and always invoking m_value.cta->pDelFunct (i.e. the
> appropriate genereted delete method..).
--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]