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 >