Many thanks for your suggestions and for fixing the bug.

Andreas

On Mon, Sep 8, 2008 at 2:25 AM, Supun Kamburugamuva <[EMAIL PROTECTED]>wrote:

> Hi Andy,
>
> Thanks for finding this important bug in the axiom code. I've found the bug
> and will correct it shortly. I've gone through your code and there are two
> things that I like to point out in your code.
>
> 1. You are creating an empty node and passing it to the element_create
> method. This leads to a memory leak. Correct code is:
>
>   axiom_node_t *nodeA = NULL;
>   axutil_string_t* nodeAString = axutil_string_create
> (env,"getParameterValues");
>   axiom_element_create_str(env, NULL, nodeAString, ns, &nodeA);
>
> 2. You are creating an empty namsespace. This also causes a memory leak.
> You should pass NULL instead of this empty namespace.
>
> axiom_element_create_str(env, nodeA, nodeBString, NULL, &nodeB);
>
> Thanks,
> Supun..
>
>
> On Fri, Sep 5, 2008 at 11:30 PM, Dimuthu Gamage <[EMAIL PROTECTED]>wrote:
>
>> Hi,
>> Looks like the axiom node created with axutil_string is having problem, I
>> too got the same problem with your code, and I tried replacing
>> axiom_element_create_str with axiom_element_create and it was working
>> correctly.
>>
>>         axiom_node_t *nodeA = axiom_node_create(env);
>>         /*axutil_string_t* nodeAString = axutil_string_create
>> (env,"getParameterValues");   */
>>         const axis2_char_t *nodeAString = "getParametervalues";
>>         axiom_element_create(env, NULL, nodeAString, ns, &nodeA);
>>         .....
>>
>> I think axutil_string or use of axutil_string inside axiom is having a
>> bug. Can you please raise an issue on this at
>> https://issues.apache.org/jira/browse/AXIS2C
>>
>> Thanks
>> Dimuthu
>>
>>
>>
>>
>> On Thu, Sep 4, 2008 at 7:13 PM, Andy Karseras <[EMAIL PROTECTED]>wrote:
>>
>>> The following code illustrates the problem...
>>>
>>>     void myClient::testMethod()
>>>     {
>>>         const axis2_char_t *prefix = "cwmp";
>>>         const axis2_char_t *uri = "urn:dslforum-org:cwmp-1-0";
>>>
>>>         axiom_namespace_t *ns = axiom_namespace_create(env, uri, prefix);
>>>         axiom_namespace_t *empty_ns = axiom_namespace_create(env, uri,
>>> "");
>>>
>>>         axiom_node_t *nodeA = axiom_node_create(env);
>>>         axutil_string_t* nodeAString = axutil_string_create
>>> (env,"getParameterValues");
>>>         axiom_element_create_str(env, NULL, nodeAString, ns, &nodeA);
>>>
>>>         axiom_node_t *nodeB = axiom_node_create(env);
>>>         axutil_string_t* nodeBString = axutil_string_create
>>> (env,"ParameterNames");
>>>         axiom_element_create_str(env, nodeA, nodeBString, empty_ns,
>>> &nodeB);
>>>
>>>         axiom_node_t *nameNode = axiom_node_create(env);
>>>         axutil_string_t* nameString = axutil_string_create (env, "Name");
>>>         axiom_element_create_str(env, nodeB, nameString, empty_ns,
>>> &nameNode);
>>>
>>>         axiom_element_t *ele = (axiom_element_t
>>> *)axiom_node_get_data_element( nameNode, env);
>>>         axiom_element_set_text( ele, env, "blah", nameNode);
>>>
>>>         cout << axiom_node_to_string(nodeA,env) << endl;
>>>
>>>         axiom_node_free_tree(nodeA, env);
>>>     }
>>>
>>> The method is called multiple times with a sleep interval in between and
>>> creates the output below.
>>> Note the ParameterNames tag for the last two iterations.
>>>
>>> <cwmp:getParameterValues
>>> xmlns:cwmp="urn:dslforum-org:cwmp-1-0"><ParameterNames><Name>blah</Name></ParameterNames></cwmp:getParameterValues>
>>> <cwmp:getParameterValues
>>> xmlns:cwmp="urn:dslforum-org:cwmp-1-0"><ParameterNames><Name>blah</Name></ParameterNames></cwmp:getParameterValues>
>>> <cwmp:getParameterValues
>>> xmlns:cwmp="urn:dslforum-org:cwmp-1-0"><ParameterNames><Name/>blah</Name></ParameterNames></cwmp:getParameterValues>
>>> <cwmp:getParameterValues xmlns:cwmp="urn:dslforum-org:cwmp-1-0">*
>>> <ParameterNames/>*
>>> <Name/>blah</Name></ParameterNames></cwmp:getParameterValues>
>>> <cwmp:getParameterValues xmlns:cwmp="urn:dslforum-org:cwmp-1-0">*
>>> <ParameterNames/>*
>>> <Name/>blah</Name></ParameterNames></cwmp:getParameterValues>
>>>
>>> Is this expected due to my incorrect use of the APIs or is this a bug ?
>>>
>>> Many thanks.
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Sep 4, 2008 at 7:52 AM, Andy Karseras <[EMAIL PROTECTED]>wrote:
>>>
>>>> Thanks for your reply.
>>>>
>>>> It seems that the problem occurs even when I create a new service client
>>>> and payload on each time I resend.  Would this be expected ?
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Sep 3, 2008 at 9:05 PM, Samisa Abeysinghe <[EMAIL PROTECTED]>wrote:
>>>>
>>>>> I think this occurs because you are violating the ownership rules with
>>>>> OM. Once the payload is passed in, the engine takes over the ownership of
>>>>> the node and you are not supposed to do anything with the payload
>>>>> afterwards.
>>>>>
>>>>> Thanks,
>>>>> Samisa...
>>>>>
>>>>> Andy Karseras wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I raised this problem in July and thought that it had been resolved
>>>>>> (by doing proper clean-up), although it is now re-occurring.
>>>>>>
>>>>>> I am seeing a close tag being created when there shouldn't be.
>>>>>>
>>>>>> The incorrect message content is as follows...
>>>>>>
>>>>>> <cwmp:getParameterValues xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
>>>>>>    <ParameterNames>
>>>>>>        *<Name/>**TempAgent.</Name>
>>>>>>    </ParameterNames>
>>>>>> </cwmp:getParameterValues>
>>>>>>
>>>>>>
>>>>>> I am sending the same message multiple times to the server and the
>>>>>> error occurs on the third iteration (3rd time the message is sent) so am
>>>>>> assuming that I am not doing proper clean-up after each message is 
>>>>>> created
>>>>>> and then sent.
>>>>>>
>>>>>> My questions as follows...
>>>>>> a) Has anybody seen this before ?
>>>>>>
>>>>>> b) Will calling axiom_node_free_tree on nodeA also clean-up nodeB in
>>>>>> the following example ?
>>>>>>    axiom_node_t *nodeB= axiom_node_get_first_child(nodeA, env);
>>>>>>
>>>>>> c) Will a node created to be used in axis2_svc_client_add_header, be
>>>>>> cleaned-up by axis2_svc_client_free ?
>>>>>>
>>>>>> d) Is there any other info I can provide to clarify or help explain
>>>>>> the problem ?
>>>>>>
>>>>>> Many thanks.
>>>>>>
>>>>>>
>>>>>> Andy
>>>>>>
>>>>>> ------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>> No virus found in this incoming message.
>>>>>> Checked by AVG - http://www.avg.com Version: 8.0.169 / Virus
>>>>>> Database: 270.6.15/1649 - Release Date: 9/3/2008 7:15 AM
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Samisa Abeysinghe Director, Engineering; WSO2 Inc.
>>>>>
>>>>> http://www.wso2.com/ - "The Open Source SOA Company"
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>
>>>>>
>>>>
>>>
>>
>>
>> --
>> Thanks,
>> Dimuthu Gamage
>>
>> http://www.dimuthu.org
>> http://www.wso2.org
>>
>
>
>
> --
> Software Engineer, WSO2 Inc
>

Reply via email to