Author: damitha
Date: Sat May 31 19:48:57 2008
New Revision: 662129

URL: http://svn.apache.org/viewvc?rev=662129&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=662129&r1=662128&r2=662129&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 19:48:57 2008
@@ -1283,69 +1283,11 @@
     {
         msg_number = 1;
     }
-    
-    /* A dummy message is a one which will not be processed as a actual 
-     * application message. The RM handlers will simply let these go.
-     */
-    property = axis2_msg_ctx_get_property(msg_ctx, env, 
SANDESHA2_CLIENT_DUMMY_MESSAGE);
-    if(property)
-    {
-        dummy_msg_str = axutil_property_get_value(property, env);
-    }
-
-    if(dummy_msg_str && 0 == axutil_strcmp(dummy_msg_str, AXIS2_VALUE_TRUE))
-    {
-        dummy_msg = AXIS2_TRUE;
-    }
-
-    if(!dummy_msg)
-    {
-        sandesha2_app_msg_processor_set_next_msg_no(env, 
rms_internal_sequence_id, msg_number, seq_prop_mgr);
-    }
-
-    sprintf(msg_number_str, "%ld", msg_number); 
-    res_highest_msg_bean = sandesha2_seq_property_bean_create_with_data(env, 
rms_internal_sequence_id, 
-            SANDESHA2_SEQ_PROP_HIGHEST_OUT_MSG_NUMBER, msg_number_str);
-
-    sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, res_highest_msg_bean);
-    if(res_highest_msg_bean)
-    {
-        sandesha2_seq_property_bean_free(res_highest_msg_bean, env);
-    }
-
-    relates_to = axis2_msg_ctx_get_relates_to(msg_ctx, env);
-    if(relates_to)
-    {
-        sandesha2_seq_property_bean_t *response_relates_to_bean = NULL; 
-        const axis2_char_t *relates_to_value = 
axis2_relates_to_get_value(relates_to, env);
-
-        response_relates_to_bean = 
sandesha2_seq_property_bean_create_with_data(env, 
-                rms_internal_sequence_id, 
SANDESHA2_SEQ_PROP_HIGHEST_OUT_RELATES_TO, 
-                (axis2_char_t *) relates_to_value);
-
-        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, 
response_relates_to_bean);
-    }
-
-    storage_key = axutil_uuid_gen(env);
-
-    if(last_msg)
-    {
-        sandesha2_seq_property_bean_t *res_last_msg_key_bean = NULL;
-       
-        res_last_msg_key_bean = 
sandesha2_seq_property_bean_create_with_data(env, 
-                rms_internal_sequence_id, 
SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NO, msg_number_str);
-
-        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, 
res_last_msg_key_bean);
-    }
-
-    rms_sequence_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
-            rms_internal_sequence_id, SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);
 
     if(is_svr_side)
     {
         sandesha2_seq_property_bean_t *rmd_to_bean = NULL;
-        sandesha2_seq_property_bean_t *spec_ver_bean = NULL;
-
+        
         rmd_to_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
rmd_sequence_id, 
                 SANDESHA2_SEQ_PROP_TO_EPR);
         if(rmd_to_bean)
@@ -1358,61 +1300,12 @@
             property = axutil_property_create_with_args(env, 0, 0, 0, rmd_to);
             axis2_msg_ctx_set_property(msg_ctx, env, 
SANDESHA2_SEQ_PROP_TO_EPR, property);
         }
-       
-        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)
-            {
-                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;
-        }
-
-        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);
-        }
     }
 
-    if(!spec_ver)
-    {
-        spec_ver = 
sandesha2_spec_specific_consts_get_default_spec_version(env);
-    }
 
-    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Spec version:%s", spec_ver);
+
+    rms_sequence_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
+            rms_internal_sequence_id, SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);
 
     if(1 == msg_number)
     {
@@ -1441,6 +1334,66 @@
             }
         }
 
+        /* 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)
+                {
+                    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;
+            }
+
+            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 */
+
+        if(!spec_ver)
+        {
+            spec_ver = 
sandesha2_spec_specific_consts_get_default_spec_version(env);
+        }
+
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Spec version:%s", spec_ver);
+
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
                 "Starting the rms sequence with rms rms internal sequence id 
%s", 
                 rms_internal_sequence_id);
@@ -1454,10 +1407,11 @@
         sandesha2_seq_property_bean_t *create_seq_added = NULL;
         axis2_char_t *addr_ns_uri = NULL;
         axis2_char_t *anon_uri = NULL;
-       
+
         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);
 
@@ -1515,15 +1469,72 @@
                     }
                 }
             }
+
+
             /**
              * 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);
         }
     }
 
+    /* A dummy message is a one which will not be processed as a actual 
+     * application message. The RM handlers will simply let these go.
+     */
+    property = axis2_msg_ctx_get_property(msg_ctx, env, 
SANDESHA2_CLIENT_DUMMY_MESSAGE);
+    if(property)
+    {
+        dummy_msg_str = axutil_property_get_value(property, env);
+    }
+
+    if(dummy_msg_str && 0 == axutil_strcmp(dummy_msg_str, AXIS2_VALUE_TRUE))
+    {
+        dummy_msg = AXIS2_TRUE;
+    }
+
+    if(!dummy_msg)
+    {
+        sandesha2_app_msg_processor_set_next_msg_no(env, 
rms_internal_sequence_id, msg_number, seq_prop_mgr);
+    }
+
+    sprintf(msg_number_str, "%ld", msg_number); 
+    res_highest_msg_bean = sandesha2_seq_property_bean_create_with_data(env, 
rms_internal_sequence_id, 
+            SANDESHA2_SEQ_PROP_HIGHEST_OUT_MSG_NUMBER, msg_number_str);
+
+    sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, res_highest_msg_bean);
+    if(res_highest_msg_bean)
+    {
+        sandesha2_seq_property_bean_free(res_highest_msg_bean, env);
+    }
+
+    relates_to = axis2_msg_ctx_get_relates_to(msg_ctx, env);
+    if(relates_to)
+    {
+        sandesha2_seq_property_bean_t *response_relates_to_bean = NULL; 
+        const axis2_char_t *relates_to_value = 
axis2_relates_to_get_value(relates_to, env);
+
+        response_relates_to_bean = 
sandesha2_seq_property_bean_create_with_data(env, 
+                rms_internal_sequence_id, 
SANDESHA2_SEQ_PROP_HIGHEST_OUT_RELATES_TO, 
+                (axis2_char_t *) relates_to_value);
+
+        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, 
response_relates_to_bean);
+    }
+
+    storage_key = axutil_uuid_gen(env);
+
+    if(last_msg)
+    {
+        sandesha2_seq_property_bean_t *res_last_msg_key_bean = NULL;
+       
+        res_last_msg_key_bean = 
sandesha2_seq_property_bean_create_with_data(env, 
+                rms_internal_sequence_id, 
SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NO, msg_number_str);
+
+        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, 
res_last_msg_key_bean);
+    }
+
     soap_env = sandesha2_msg_ctx_get_soap_envelope(rm_msg_ctx, env);
     if(!soap_env)
     {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to