You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by da...@apache.org on 2008/06/01 05:20:27 UTC

svn commit: r662137 - /webservices/sandesha/tags/sandesha2/c/worker_thread_removed-30may2008/src/msgprocessors/app_msg_processor.c

Author: damitha
Date: Sat May 31 20:20:27 2008
New Revision: 662137

URL: http://svn.apache.org/viewvc?rev=662137&view=rev
Log:
Fixing memory leaks

Modified:
    webservices/sandesha/tags/sandesha2/c/worker_thread_removed-30may2008/src/msgprocessors/app_msg_processor.c

Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-30may2008/src/msgprocessors/app_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-30may2008/src/msgprocessors/app_msg_processor.c?rev=662137&r1=662136&r2=662137&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-30may2008/src/msgprocessors/app_msg_processor.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-30may2008/src/msgprocessors/app_msg_processor.c Sat May 31 20:20:27 2008
@@ -1333,145 +1333,146 @@
                 axis2_ctx_set_property(ctx, env, SANDESHA2_MSG_CTX_MAP, property);
             }
         }
-            /* Determine spec version */
-            if(is_svr_side)
-            {
-                sandesha2_seq_property_bean_t *spec_ver_bean = NULL;
-               
-                spec_ver_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, rmd_sequence_id, 
-                        SANDESHA2_SEQ_PROP_RM_SPEC_VERSION);
 
-                if(req_rm_msg_ctx)
+        /* Determine spec version */
+        if(is_svr_side)
+        {
+            sandesha2_seq_property_bean_t *spec_ver_bean = NULL;
+           
+            spec_ver_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, rmd_sequence_id, 
+                    SANDESHA2_SEQ_PROP_RM_SPEC_VERSION);
+
+            if(req_rm_msg_ctx)
+            {
+                sandesha2_msg_ctx_free(req_rm_msg_ctx, env);
+            }
+            if(!spec_ver_bean)
+            {
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+                    "[sandesha2] Invalid spec version");
+                AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_INVALID_SPEC_VERSION,
+                    AXIS2_FAILURE);
+                if(rms_internal_sequence_id)
                 {
-                    sandesha2_msg_ctx_free(req_rm_msg_ctx, env);
+                    AXIS2_FREE(env->allocator, rms_internal_sequence_id);
                 }
-                if(!spec_ver_bean)
+                if(seq_prop_mgr)
                 {
-                    AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
-                        "[sandesha2] Invalid spec version");
-                    AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_INVALID_SPEC_VERSION,
-                        AXIS2_FAILURE);
-                    if(rms_internal_sequence_id)
-                    {
-                        AXIS2_FREE(env->allocator, rms_internal_sequence_id);
-                    }
-                    if(seq_prop_mgr)
-                    {
-                        sandesha2_seq_property_mgr_free(seq_prop_mgr, env);
-                    }
-                    if(create_seq_mgr)
-                    {
-                        sandesha2_create_seq_mgr_free(create_seq_mgr, env);
-                    }
-                    if(sender_mgr)
-                    {
-                        sandesha2_sender_mgr_free(sender_mgr, env);
-                    }
-                    if(storage_mgr)
-                    {
-                        sandesha2_storage_mgr_free(storage_mgr, env);
-                    }
-
-                    return AXIS2_FAILURE;
+                    sandesha2_seq_property_mgr_free(seq_prop_mgr, env);
                 }
-
-                spec_ver = sandesha2_seq_property_bean_get_value(spec_ver_bean, env);
-            }
-            else
-            {
-                property = axis2_msg_ctx_get_property(msg_ctx, env, SANDESHA2_CLIENT_RM_SPEC_VERSION);
-                if(property)
+                if(create_seq_mgr)
+                {
+                    sandesha2_create_seq_mgr_free(create_seq_mgr, env);
+                }
+                if(sender_mgr)
                 {
-                    spec_ver = axutil_property_get_value(property, env);
+                    sandesha2_sender_mgr_free(sender_mgr, env);
+                }
+                if(storage_mgr)
+                {
+                    sandesha2_storage_mgr_free(storage_mgr, env);
                 }
-            } /* End of determining spec version */
 
-            if(!spec_ver)
-            {
-                spec_ver = sandesha2_spec_specific_consts_get_default_spec_version(env);
+                return AXIS2_FAILURE;
             }
 
-            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Spec version:%s", spec_ver);
+            spec_ver = sandesha2_seq_property_bean_get_value(spec_ver_bean, env);
+        }
+        else
+        {
+            property = axis2_msg_ctx_get_property(msg_ctx, env, SANDESHA2_CLIENT_RM_SPEC_VERSION);
+            if(property)
+            {
+                spec_ver = axutil_property_get_value(property, env);
+            }
+        } /* End of determining spec version */
 
-            sandesha2_seq_mgr_setup_new_rms_sequence(env, msg_ctx, rms_internal_sequence_id, spec_ver, 
-                    seq_prop_mgr);
-    }
+        if(!spec_ver)
+        {
+            spec_ver = sandesha2_spec_specific_consts_get_default_spec_version(env);
+        }
 
-    if(send_create_seq)
-    {
-        sandesha2_seq_property_bean_t *create_seq_added = NULL;
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Spec version:%s", spec_ver);
 
-        create_seq_added = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, rms_internal_sequence_id, 
-                SANDESHA2_SEQ_PROP_OUT_CREATE_SEQ_SENT);
+        sandesha2_seq_mgr_setup_new_rms_sequence(env, msg_ctx, rms_internal_sequence_id, spec_ver, 
+                seq_prop_mgr);
 
-        if(!create_seq_added)
+        if(send_create_seq)
         {
-            axis2_char_t *acks_to = NULL;
-            axis2_char_t *addr_ns_uri = NULL;
-            axis2_char_t *anon_uri = NULL;
-            
-            create_seq_added = sandesha2_seq_property_bean_create_with_data(env, 
-                    rms_internal_sequence_id, SANDESHA2_SEQ_PROP_OUT_CREATE_SEQ_SENT, AXIS2_VALUE_TRUE);
+            sandesha2_seq_property_bean_t *create_seq_added = NULL;
 
-            sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, create_seq_added);
+            create_seq_added = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, rms_internal_sequence_id, 
+                    SANDESHA2_SEQ_PROP_OUT_CREATE_SEQ_SENT);
 
-            addr_ns_uri = sandesha2_utils_get_seq_property(env, rms_internal_sequence_id, 
-                    SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, seq_prop_mgr);
-
-            anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
-            if(addr_ns_uri)
+            if(!create_seq_added)
             {
-                AXIS2_FREE(env->allocator, addr_ns_uri);
-            }
+                axis2_char_t *acks_to = NULL;
+                axis2_char_t *addr_ns_uri = NULL;
+                axis2_char_t *anon_uri = NULL;
+                
+                create_seq_added = sandesha2_seq_property_bean_create_with_data(env, 
+                        rms_internal_sequence_id, SANDESHA2_SEQ_PROP_OUT_CREATE_SEQ_SENT, AXIS2_VALUE_TRUE);
 
-            if(axis2_msg_ctx_get_svc_ctx(msg_ctx, env))
-            {
-                property = axis2_msg_ctx_get_property(msg_ctx, env, SANDESHA2_CLIENT_ACKS_TO);
-                if(property)
+                sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, create_seq_added);
+
+                addr_ns_uri = sandesha2_utils_get_seq_property(env, rms_internal_sequence_id, 
+                        SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, seq_prop_mgr);
+
+                anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
+                if(addr_ns_uri)
                 {
-                    acks_to = axutil_property_get_value(property, env);
+                    AXIS2_FREE(env->allocator, addr_ns_uri);
                 }
-            }
 
-            if(is_svr_side)
-            {
-                axis2_endpoint_ref_t *acks_to_epr = NULL;
+                if(axis2_msg_ctx_get_svc_ctx(msg_ctx, env))
+                {
+                    property = axis2_msg_ctx_get_property(msg_ctx, env, SANDESHA2_CLIENT_ACKS_TO);
+                    if(property)
+                    {
+                        acks_to = axutil_property_get_value(property, env);
+                    }
+                }
 
-                acks_to_epr = axis2_msg_ctx_get_to(req_msg_ctx, env);
-                acks_to = (axis2_char_t*)axis2_endpoint_ref_get_address(acks_to_epr, env);
-            }
-            else if(!acks_to)
-            {
-                acks_to = anon_uri;
-            }
-            
-            if(!acks_to && is_svr_side)
-            {
-                sandesha2_seq_property_bean_t *reply_to_epr_bean = NULL;
-                
-                reply_to_epr_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
-                        rmd_sequence_id, SANDESHA2_SEQ_PROP_REPLY_TO_EPR);
-                if(reply_to_epr_bean)
+                if(is_svr_side)
                 {
-                    axis2_endpoint_ref_t *acks_epr = NULL;
+                    axis2_endpoint_ref_t *acks_to_epr = NULL;
 
-                    acks_epr = axis2_endpoint_ref_create(env, 
-                            sandesha2_seq_property_bean_get_value(reply_to_epr_bean, env));
-                    if(acks_epr)
+                    acks_to_epr = axis2_msg_ctx_get_to(req_msg_ctx, env);
+                    acks_to = (axis2_char_t*)axis2_endpoint_ref_get_address(acks_to_epr, env);
+                }
+                else if(!acks_to)
+                {
+                    acks_to = anon_uri;
+                }
+                
+                if(!acks_to && is_svr_side)
+                {
+                    sandesha2_seq_property_bean_t *reply_to_epr_bean = NULL;
+                    
+                    reply_to_epr_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
+                            rmd_sequence_id, SANDESHA2_SEQ_PROP_REPLY_TO_EPR);
+                    if(reply_to_epr_bean)
                     {
-                        acks_to = (axis2_char_t*)axis2_endpoint_ref_get_address(acks_epr, env);
+                        axis2_endpoint_ref_t *acks_epr = NULL;
+
+                        acks_epr = axis2_endpoint_ref_create(env, 
+                                sandesha2_seq_property_bean_get_value(reply_to_epr_bean, env));
+                        if(acks_epr)
+                        {
+                            acks_to = (axis2_char_t*)axis2_endpoint_ref_get_address(acks_epr, env);
+                        }
                     }
                 }
-            }
 
 
-            /**
-             * else if()
-             * TODO handle acks_to == anon_uri case
-             */
-            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "acks_to:%s", acks_to);
-            sandesha2_app_msg_processor_send_create_seq_msg(env, rm_msg_ctx, rms_internal_sequence_id, 
-                    acks_to, storage_mgr, seq_prop_mgr, create_seq_mgr, sender_mgr);
+                /**
+                 * else if()
+                 * TODO handle acks_to == anon_uri case
+                 */
+                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "acks_to:%s", acks_to);
+                sandesha2_app_msg_processor_send_create_seq_msg(env, rm_msg_ctx, rms_internal_sequence_id, 
+                        acks_to, storage_mgr, seq_prop_mgr, create_seq_mgr, sender_mgr);
+            }
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org