Hi Shankar,

The access violation happens in the following line when it tries to free 
om_builder (See code snappet in my previous message).
                AXIS2_FREE(env->allocator, (ht->array));
Looking from the debugger, env->allocator points to an invalid address 
(0xfeeefeee), suggesting it has been released already.
  
Here is the stack trace in debugger:
======
axutil.dll!axutil_hash_free(axutil_hash_t * ht=0x089df150, const axutil_env * 
env=0x089deaf0)  Line 623 + 0x12
 axiom.dll!axiom_element_free(axiom_element * om_element=0x089def50, const 
axutil_env * env=0x089deaf0)  Line 723
 axiom.dll!axiom_node_free_detached_subtree(axiom_node * om_node=0x089deee8, 
const axutil_env * env=0x089deaf0)  Line 165
  axiom.dll!axiom_node_free_tree(axiom_node * om_node=0x089deee8, const 
axutil_env * env=0x089deaf0)  Line 224 + 0xd
axiom.dll!axiom_document_free(axiom_document * document=0x089ded48, const 
axutil_env * env=0x089deaf0)  Line 89
  axiom.dll!axiom_stax_builder_free(axiom_stax_builder * om_builder=0x089debf8, 
const axutil_env * env=0x089deaf0)  Line 898 
======
Again, I am working on axis2/c 1.5+ code, I verified that the code works in 1.6 
or even 1.3.

Thanks for your help!
Vivian



________________________________
From: Uthaiyashankar <shan...@wso2.com>
To: Apache AXIS C User List <axis-c-user@ws.apache.org>
Sent: Thursday, June 18, 2009 7:38:33 PM
Subject: Re: Help -- Need to figure out what has changed in source code

Hi Vivian, 

Can you run your client with valgrind and send the logs when it crashes? We 
need the stack trace when it is crashing.

Regards, 
Shankar


On Fri, Jun 19, 2009 at 5:59 AM, Vivian Wang <vivianwan...@yahoo.com> wrote:


Hi All,

I am using axis2/c 1.5+ (checked out from trunk roughly one and half month 
before 1.6 release) for ws client. I have built my application first using 1.3. 
I notice that one piece of my code for freeing resources goes working fine in 
1.3, crashes in 1.5+ and now working again in 1.6. I need to figure out what 
caused the crash in 1.5+ and what change make it work again in 1.6, as I am not 
ready yet to upgrade fully to 1.6. Please help me if you can. Thanks in advance!

Here is the code:

//freeing resources
//axiom_output_t* om_output
 if (om_output)
 {
        axiom_output_free(om_output, env);
        om_output = NULL;
 }
// axis2_svc_client_t* wsf_service_client
 if (wsf_service_client)
 {
      axis2_svc_client_free(wsf_service_client, env);
      wsf_service_client = NULL;
 }
//axiom_stax_builder_t* om_builder
 if(om_builder)
 {
       axiom_stax_builder_free(om_builder, env);
       om_builder = NULL;
 }

//axutil_env_t* env
 if (env)
 {
      axutil_env_free((axutil_env_t *) env);
      env = NULL;
 }

I am using axiom_output_t* to serialize ws reply node  (together with 
xml_write), and using axiom_stax_builder_t*  to create the request payload.

Thanks again!
Vivian






-- 
S.Uthaiyashankar
Software Architect
WSO2 Inc. 
http://wso2.com/ - "The Open Source SOA Company" 


      

Reply via email to