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/08/29 08:56:38 UTC

svn commit: r690127 [3/11] - in /webservices/sandesha/trunk/c: ./ build/win32/ config/ ides/vc8/sandesha2/sandesha2/ include/ include/sandesha2/ samples/ samples/RMSampleService/ samples/rm_echo_1_0/ samples/rm_echo_1_0_large_sequence/ samples/rm_echo_...

Modified: webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c?rev=690127&r1=690126&r2=690127&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/ack_msg_processor.c Thu Aug 28 23:56:29 2008
@@ -34,6 +34,7 @@
 #include <axutil_string.h>
 #include <axis2_engine.h>
 #include <axiom_soap_const.h>
+#include <axiom_soap_body.h>
 #include <stdio.h>
 #include <axis2_msg_ctx.h>
 #include <axis2_conf_ctx.h>
@@ -64,7 +65,6 @@
 #define SANDESHA2_INTF_TO_IMPL(msg_proc) \
 						((sandesha2_ack_msg_processor_impl_t *)(msg_proc))
 
-/***************************** Function headers *******************************/
 static axis2_status_t AXIS2_CALL 
 sandesha2_ack_msg_processor_process_in_msg (
     sandesha2_msg_processor_t *msg_processor,
@@ -87,7 +87,6 @@
     sandesha2_msg_processor_t *msg_processor, 
 	const axutil_env_t *env);								
 
-/***************************** End of function headers ************************/
 
 AXIS2_EXTERN sandesha2_msg_processor_t* AXIS2_CALL
 sandesha2_ack_msg_processor_create(
@@ -95,9 +94,8 @@
 {
     sandesha2_ack_msg_processor_impl_t *msg_proc_impl = NULL;
               
-    msg_proc_impl =  (sandesha2_ack_msg_processor_impl_t *)AXIS2_MALLOC 
-                        (env->allocator, 
-                        sizeof(sandesha2_ack_msg_processor_impl_t));
+    msg_proc_impl =  (sandesha2_ack_msg_processor_impl_t *)AXIS2_MALLOC (env->allocator, sizeof(
+                sandesha2_ack_msg_processor_impl_t));
 	
     if(!msg_proc_impl)
 	{
@@ -105,18 +103,16 @@
         return NULL;
 	}
     
-    msg_proc_impl->msg_processor.ops = AXIS2_MALLOC(env->allocator,
-        sizeof(sandesha2_msg_processor_ops_t));
+    msg_proc_impl->msg_processor.ops = AXIS2_MALLOC(env->allocator, sizeof(
+                sandesha2_msg_processor_ops_t));
     if(!msg_proc_impl->msg_processor.ops)
 	{
-		sandesha2_ack_msg_processor_free((sandesha2_msg_processor_t*)
-                         msg_proc_impl, env);
+		sandesha2_ack_msg_processor_free((sandesha2_msg_processor_t*) msg_proc_impl, env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
 	}
     
-    msg_proc_impl->msg_processor.ops->process_in_msg = 
-                        sandesha2_ack_msg_processor_process_in_msg;
+    msg_proc_impl->msg_processor.ops->process_in_msg = sandesha2_ack_msg_processor_process_in_msg;
     msg_proc_impl->msg_processor.ops->free = sandesha2_ack_msg_processor_free;
                         
 	return &(msg_proc_impl->msg_processor);
@@ -132,7 +128,9 @@
     msg_proc_impl = SANDESHA2_INTF_TO_IMPL(msg_processor);
     
     if(msg_processor->ops)
+    {
         AXIS2_FREE(env->allocator, msg_processor->ops);
+    }
     
 	AXIS2_FREE(env->allocator, SANDESHA2_INTF_TO_IMPL(msg_processor));
 	return AXIS2_SUCCESS;
@@ -155,9 +153,9 @@
     sandesha2_sender_mgr_t *sender_mgr = NULL;
     axutil_array_list_t *ack_range_list = NULL;
     axutil_array_list_t *nack_list = NULL;
-    axis2_char_t *out_seq_id = NULL;
-    axis2_char_t *int_seq_id = NULL;
-    axutil_property_t *property = NULL;
+    axis2_char_t *rms_sequence_id = NULL;
+    axis2_char_t *internal_sequence_id = NULL;
+    /*axutil_property_t *property = NULL;*/
     sandesha2_sender_bean_t *input_bean = NULL;
     axutil_array_list_t *retrans_list = NULL;
     axutil_array_list_t *acked_list = NULL;
@@ -169,28 +167,33 @@
     axis2_char_t *str_list = NULL;
     axis2_char_t *last_out_msg_no_str = NULL;
     axis2_bool_t added = AXIS2_FALSE;
-    /*const axis2_char_t *action = NULL;*/
     sandesha2_msg_ctx_t *fault_msg_ctx = NULL;
     axis2_char_t *dbname = NULL;
+    axiom_soap_envelope_t *soap_envelope = NULL;
+    axiom_soap_body_t *soap_body = NULL;
+    axiom_node_t *body_node = NULL;
+    axiom_element_t *body_element = NULL;
+    axiom_children_iterator_t *children_iterator = NULL;
+
     AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,  
-        "[sandesha2]Entry:sandesha2_ack_msg_processor_process_in_msg");
+        "[sandesha2] Entry:sandesha2_ack_msg_processor_process_in_msg");
+
     AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
+
     seq_ack = sandesha2_msg_ctx_get_seq_ack(rm_msg_ctx, env);
+
     if(!seq_ack)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Sequence"
-            " acknowledgement part is null");
-        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_REQD_MSG_PART_MISSING,
-            AXIS2_FAILURE);
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Sequence acknowledgement part is null");
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_REQD_MSG_PART_MISSING, AXIS2_FAILURE);
         return AXIS2_FAILURE;        
     }
+
     msg_ctx = sandesha2_msg_ctx_get_msg_ctx(rm_msg_ctx, env);
     conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
     
     dbname = sandesha2_util_get_dbname(env, conf_ctx); 
     storage_mgr = sandesha2_utils_get_storage_mgr(env, dbname);
-    /*sandesha2_seq_ack_set_must_understand(seq_ack, env, AXIS2_FALSE);
-    sandesha2_msg_ctx_add_soap_envelope(rm_msg_ctx, env);*/
     seq_prop_mgr = sandesha2_permanent_seq_property_mgr_create(env, dbname);
     create_seq_mgr = sandesha2_permanent_create_seq_mgr_create(env, dbname);
     sender_mgr = sandesha2_permanent_sender_mgr_create(env, dbname);
@@ -198,65 +201,92 @@
     
     ack_range_list = sandesha2_seq_ack_get_ack_range_list(seq_ack, env);
     nack_list = sandesha2_seq_ack_get_nack_list(seq_ack, env);
-    out_seq_id = sandesha2_identifier_get_identifier(
-        sandesha2_seq_ack_get_identifier(seq_ack, env), env);
-    if(!out_seq_id || 0 == axutil_strlen(out_seq_id))
+    rms_sequence_id = sandesha2_identifier_get_identifier(sandesha2_seq_ack_get_identifier(seq_ack, env), 
+            env);
+
+    if(!rms_sequence_id || 0 == axutil_strlen(rms_sequence_id))
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] OutSequenceId is"
-            " null");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] OutSequenceId is null");
         AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_NULL_SEQ, AXIS2_FAILURE);
         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(next_msg_mgr)
+        {
             sandesha2_next_msg_mgr_free(next_msg_mgr, env);
+        }
         if(storage_mgr)
+        {
             sandesha2_storage_mgr_free(storage_mgr, env);
+        }
+
         return AXIS2_FAILURE;        
     }
-    int_seq_id = sandesha2_utils_get_seq_property(env, out_seq_id, 
-        SANDESHA2_SEQ_PROP_INTERNAL_SEQ_ID, seq_prop_mgr);
-    fault_msg_ctx = sandesha2_fault_mgr_check_for_unknown_seq(env,
-        rm_msg_ctx, out_seq_id, seq_prop_mgr, create_seq_mgr, next_msg_mgr);
+
+    internal_sequence_id = sandesha2_utils_get_seq_property(env, rms_sequence_id, 
+            SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID, seq_prop_mgr);
+
+    /*fault_msg_ctx = sandesha2_fault_mgr_check_for_unknown_seq(env, rm_msg_ctx, rms_sequence_id, 
+            seq_prop_mgr, create_seq_mgr, next_msg_mgr);*/
+
     if(fault_msg_ctx)
     {
         axis2_engine_t *engine = NULL;
+
+		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[sandesha2] sandesha2_ack_msg_processor_process_in_msg send Fault");
+
         engine = axis2_engine_create(env, conf_ctx);
-        axis2_engine_send_fault(engine, env, sandesha2_msg_ctx_get_msg_ctx(
-            fault_msg_ctx, env));
+        axis2_engine_send_fault(engine, env, sandesha2_msg_ctx_get_msg_ctx(fault_msg_ctx, env));
         axis2_msg_ctx_set_paused(msg_ctx, env, AXIS2_TRUE);
         sandesha2_msg_ctx_free(fault_msg_ctx, env);
         if(engine)
+        {
             axis2_engine_free(engine, env);
+        }
     }
-    fault_msg_ctx = sandesha2_fault_mgr_check_for_invalid_ack(env, rm_msg_ctx, 
-         seq_prop_mgr);
+
+    fault_msg_ctx = sandesha2_fault_mgr_check_for_invalid_ack(env, rm_msg_ctx, seq_prop_mgr);
     if(fault_msg_ctx)
     {
         axis2_engine_t *engine = NULL;
+
+		AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "[sandesha2] sandesha2_ack_msg_processor_process_in_msg send Fault");
         engine = axis2_engine_create(env, conf_ctx);
-        axis2_engine_send_fault(engine, env, sandesha2_msg_ctx_get_msg_ctx(
-             fault_msg_ctx, env));
+        axis2_engine_send_fault(engine, env, sandesha2_msg_ctx_get_msg_ctx(fault_msg_ctx, env));
         axis2_msg_ctx_set_paused(msg_ctx, env, AXIS2_TRUE);
         sandesha2_msg_ctx_free(fault_msg_ctx, env);
+
         if(engine)
+        {
             axis2_engine_free(engine, env);
+        }
+    }
+    if(internal_sequence_id)
+    {
+        sandesha2_seq_mgr_update_last_activated_time(env, internal_sequence_id, seq_prop_mgr);
     }
-    if(int_seq_id)
-        sandesha2_seq_mgr_update_last_activated_time(env, int_seq_id, 
-            seq_prop_mgr);
-    property = axutil_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_TRUE);
-    axis2_msg_ctx_set_property(msg_ctx, env, SANDESHA2_ACK_PROCSSED, property);
+
+    /*property = axutil_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_TRUE);
+    axis2_msg_ctx_set_property(msg_ctx, env, SANDESHA2_ACK_PROCSSED, property);*/
                         
     input_bean = sandesha2_sender_bean_create(env);
-    sandesha2_sender_bean_set_internal_seq_id(input_bean, env, int_seq_id);
+    sandesha2_sender_bean_set_internal_seq_id(input_bean, env, internal_sequence_id);
     sandesha2_sender_bean_set_send(input_bean, env, AXIS2_TRUE);
     sandesha2_sender_bean_set_resend(input_bean, env, AXIS2_TRUE);
-    retrans_list = sandesha2_sender_mgr_find_by_sender_bean(sender_mgr, env, 
-        input_bean);
+    sandesha2_sender_bean_set_msg_type(input_bean, env, SANDESHA2_MSG_TYPE_APPLICATION);
+    retrans_list = sandesha2_sender_mgr_find_by_sender_bean(sender_mgr, env, input_bean);
+
     if(input_bean)
     {
         sandesha2_sender_bean_free(input_bean, env);
@@ -279,23 +309,46 @@
             }
             axutil_array_list_free(retrans_list, env);
         }
-        if(int_seq_id)
-            AXIS2_FREE(env->allocator, int_seq_id);
+
+        if(internal_sequence_id)
+        {
+            AXIS2_FREE(env->allocator, 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(next_msg_mgr)
+        {
             sandesha2_next_msg_mgr_free(next_msg_mgr, env);
+        }
+
         if(storage_mgr)
+        {
             sandesha2_storage_mgr_free(storage_mgr, env);
+        }
+
         return AXIS2_FAILURE;
     }
 
     if(ack_range_list)
+    {
         size = axutil_array_list_size(ack_range_list, env);
+    }
+
+    /* Remove application sender beans from database that are acked */
     for(i = 0; i < size; i++)
     {
         sandesha2_ack_range_t *ack_range  = NULL;
@@ -315,20 +368,25 @@
                 env, retrans_list, j);
             if(retrans_bean)
             {
+                axis2_char_t *msg_id = NULL;
+
                 int msg_type = sandesha2_sender_bean_get_msg_type(retrans_bean, env);
+                msg_id = sandesha2_sender_bean_get_msg_id(retrans_bean, env);
                 AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-                    "[sandesha2]Removing the sender bean with type %d", msg_type);
-                sandesha2_sender_mgr_remove(sender_mgr, env, 
-                    sandesha2_sender_bean_get_msg_id(retrans_bean, env));
+                    "[sandesha2] Removing the sender bean with type %d and msg_id:%s", msg_type, msg_id);
+                sandesha2_sender_mgr_remove(sender_mgr, env, sandesha2_sender_bean_get_msg_id(
+                            retrans_bean, env));
+
                 sandesha2_storage_mgr_remove_msg_ctx(storage_mgr, env,
-                    sandesha2_sender_bean_get_msg_ctx_ref_key(retrans_bean, 
-                        env), conf_ctx, msg_type);
+                    sandesha2_sender_bean_get_msg_ctx_ref_key(retrans_bean, env), conf_ctx, msg_type);
             }
+
             add_no = AXIS2_MALLOC(env->allocator, sizeof(long));
             *add_no = (long)j;
             axutil_array_list_add(acked_list, env, add_no);
         }
     }
+
     if(retrans_list)
     {
         int size = 0;
@@ -336,23 +394,26 @@
         size = axutil_array_list_size(retrans_list, env);
         for(j = 0; j < size; j++)
         {
-            sandesha2_sender_bean_t *temp = 
-                axutil_array_list_get(retrans_list, env, j);
+            sandesha2_sender_bean_t *temp = axutil_array_list_get(retrans_list, env, j);
             if(temp)
+            {
                 sandesha2_sender_bean_free(temp, env);
+            }
         }
         axutil_array_list_free(retrans_list, env);
     }
+
     for(i = 0; i < axutil_array_list_size(nack_list, env); i++)
     {
         sandesha2_nack_t *nack = NULL;
         nack = axutil_array_list_get(nack_list, env, i);
         /* TODO processing nacks */
     }
-    no_of_msgs_acked = sandesha2_ack_msg_processor_get_no_of_msgs_acked(
-        env, ack_range_list);
-    no_of_msgs_acked_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, 
-        env, out_seq_id, SANDESHA2_SEQ_PROP_NO_OF_OUTGOING_MSGS_ACKED);
+
+    no_of_msgs_acked = sandesha2_ack_msg_processor_get_no_of_msgs_acked(env, ack_range_list);
+    no_of_msgs_acked_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, rms_sequence_id, 
+            SANDESHA2_SEQ_PROP_NO_OF_OUTGOING_MSGS_ACKED);
+
     sprintf(str_long, "%ld", no_of_msgs_acked);
     if(!no_of_msgs_acked_bean)
     {
@@ -360,38 +421,41 @@
         no_of_msgs_acked_bean = sandesha2_seq_property_bean_create(env);
         sandesha2_seq_property_bean_set_name(no_of_msgs_acked_bean, env,
             SANDESHA2_SEQ_PROP_NO_OF_OUTGOING_MSGS_ACKED);
-        sandesha2_seq_property_bean_set_seq_id(no_of_msgs_acked_bean, env,
-            out_seq_id);
+        sandesha2_seq_property_bean_set_seq_id(no_of_msgs_acked_bean, env, rms_sequence_id);
     }
-    sandesha2_seq_property_bean_set_value(no_of_msgs_acked_bean, env, 
-        str_long);
+    sandesha2_seq_property_bean_set_value(no_of_msgs_acked_bean, env, str_long);
     if(added)
     {
-        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, 
-            no_of_msgs_acked_bean); 
+        sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, no_of_msgs_acked_bean); 
     }
     else
     {
-        sandesha2_seq_property_mgr_update(seq_prop_mgr, env, 
-            no_of_msgs_acked_bean); 
+        sandesha2_seq_property_mgr_update(seq_prop_mgr, env, no_of_msgs_acked_bean); 
     }
     if(no_of_msgs_acked_bean)
+    {
         sandesha2_seq_property_bean_free(no_of_msgs_acked_bean, env);
-    completed_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, 
-        env, out_seq_id, SANDESHA2_SEQ_PROP_CLIENT_COMPLETED_MESSAGES);
-    if(!completed_bean && int_seq_id)
+    }
+
+    completed_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, rms_sequence_id, 
+            SANDESHA2_SEQ_PROP_CLIENT_COMPLETED_MESSAGES);
+
+    if(!completed_bean && internal_sequence_id)
     {
         completed_bean = sandesha2_seq_property_bean_create(env);
-        sandesha2_seq_property_bean_set_seq_id(completed_bean, env, int_seq_id);
+        sandesha2_seq_property_bean_set_seq_id(completed_bean, env, internal_sequence_id);
+
         sandesha2_seq_property_bean_set_name(completed_bean, env, 
             SANDESHA2_SEQ_PROP_CLIENT_COMPLETED_MESSAGES);
+
         sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, completed_bean);
     }
-    str_list = sandesha2_utils_array_list_to_string(env, acked_list,
-        SANDESHA2_ARRAY_LIST_LONG);
+
+    str_list = sandesha2_utils_array_list_to_string(env, acked_list, SANDESHA2_ARRAY_LIST_LONG);
     if(acked_list)
     {
         int j = 0, size = 0;
+
         size = axutil_array_list_size(acked_list, env);
         for(j = 0; j < size; j++)
         {
@@ -400,79 +464,105 @@
         }
         axutil_array_list_free(acked_list, env);
     }
+
     if(completed_bean && str_list)
     {
-        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2]acked_list:%s", 
-            str_list);
+        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] acked_list:%s", str_list);
         sandesha2_seq_property_bean_set_value(completed_bean, env, str_list);
         sandesha2_seq_property_mgr_update(seq_prop_mgr, env, completed_bean);
     }
+
     if(str_list)
+    {
         AXIS2_FREE(env->allocator, str_list);
+    }
+
     if(completed_bean)
+    {
         sandesha2_seq_property_bean_free(completed_bean, env);
-    last_out_msg_no_str = sandesha2_utils_get_seq_property(env, int_seq_id,
+    }
+
+    last_out_msg_no_str = sandesha2_utils_get_seq_property(env, internal_sequence_id,
         SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NO, seq_prop_mgr);
+
     if(last_out_msg_no_str)
     {
         long highest_out_msg_no = 0;
         highest_out_msg_no = atol(last_out_msg_no_str);
         if(last_out_msg_no_str)
+        {
             AXIS2_FREE(env->allocator, last_out_msg_no_str);
+        }
+
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "highest_out_msg_no:%ld", highest_out_msg_no);
+
         if(highest_out_msg_no > 0)
         {
             axis2_bool_t completed = AXIS2_FALSE;
             axis2_endpoint_ref_t *to = NULL;
             axis2_char_t *to_address = NULL;
 
-            completed = sandesha2_ack_mgr_verify_seq_completion(env, 
-                ack_range_list, highest_out_msg_no);
+            completed = sandesha2_ack_mgr_verify_seq_completion(env, ack_range_list, 
+                    highest_out_msg_no);
+
             to = sandesha2_msg_ctx_get_to(rm_msg_ctx, env);
+
             if(to)
             {
                 to_address = (axis2_char_t*)axis2_endpoint_ref_get_address(to, env);
             }
-            if(completed && sandesha2_utils_is_anon_uri(env, to_address))
+
+            /*if(completed && sandesha2_utils_is_anon_uri(env, to_address))*/
             {
                 AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-                        "[sandesha2]Sequence %s is completed. So adding terminate msg", 
-                        out_seq_id); 
-                sandesha2_terminate_mgr_add_terminate_seq_msg(env, rm_msg_ctx, 
-                    out_seq_id, int_seq_id, storage_mgr, seq_prop_mgr, 
-                    create_seq_mgr, sender_mgr);
+                        "[sandesha2]Sequence %s is completed. So adding terminate msg", rms_sequence_id); 
+                sandesha2_terminate_mgr_send_terminate_seq_msg(env, rm_msg_ctx, rms_sequence_id, 
+                        internal_sequence_id, storage_mgr, seq_prop_mgr, create_seq_mgr, sender_mgr);
             }
         }
     }
-    if(int_seq_id)
-        AXIS2_FREE(env->allocator, int_seq_id);
-    /*action = axis2_msg_ctx_get_wsa_action(msg_ctx, env);
-    if(action)
+
+    if(internal_sequence_id)
+    {
+        AXIS2_FREE(env->allocator, internal_sequence_id);
+    }
+
+    soap_envelope = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
+    soap_body = axiom_soap_envelope_get_body(soap_envelope, env);
+    body_node = axiom_soap_body_get_base_node(soap_body, env);
+    body_element = axiom_node_get_data_element(body_node, env);
+    children_iterator = axiom_element_get_children(body_element, env, body_node);
+    if(!axiom_children_iterator_has_next(children_iterator, env))
     {
-        axis2_char_t *temp_spec_ver = NULL;
-        axis2_char_t *temp_action = NULL;
-        
-        temp_spec_ver = sandesha2_msg_ctx_get_rm_spec_ver(rm_msg_ctx, env);
-        temp_action = sandesha2_spec_specific_consts_get_ack_req_action(env, 
-                temp_spec_ver);
-        if(!axutil_strcmp(action, temp_action))
-        {
-            sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);
-        }
-    }*/
-    sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);
+        sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);
+    }
+    /* Do we need to pause the message context here */
+    /*sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);*/
+
     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(next_msg_mgr)
+    {
         sandesha2_next_msg_mgr_free(next_msg_mgr, env);
+    }
     if(storage_mgr)
+    {
         sandesha2_storage_mgr_free(storage_mgr, env);
-    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,  
-        "[sandesha2]Exit:sandesha2_ack_msg_processor_process_in_msg");
+    }
+
+    AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, 
+            "[sandesha2] Exit:sandesha2_ack_msg_processor_process_in_msg");
+
     return AXIS2_SUCCESS;
 }
     

Modified: webservices/sandesha/trunk/c/src/msgprocessors/ack_req_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/ack_req_msg_processor.c?rev=690127&r1=690126&r2=690127&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/ack_req_msg_processor.c (original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/ack_req_msg_processor.c Thu Aug 28 23:56:29 2008
@@ -216,8 +216,9 @@
         if(new_out_fault_flow)
             axis2_op_set_fault_out_flow(ack_op, env, new_out_fault_flow);
     }
-    ack_msg_ctx = sandesha2_utils_create_new_related_msg_ctx(env, rm_msg_ctx, 
-        ack_op);
+
+    ack_msg_ctx = sandesha2_utils_create_new_related_msg_ctx(env, rm_msg_ctx);
+
     property = axutil_property_create_with_args(env, 0, 0, 0, AXIS2_VALUE_TRUE);
     axis2_msg_ctx_set_property(ack_msg_ctx, env, 
         SANDESHA2_APPLICATION_PROCESSING_DONE, property);
@@ -367,7 +368,7 @@
         }
         sandesha2_sender_bean_set_time_to_send(ack_bean, env, time_to_send); 
         /*axis2_msg_ctx_set_keep_alive(ack_msg_ctx, env, AXIS2_TRUE);*/
-        sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, key, ack_msg_ctx);
+        sandesha2_storage_mgr_store_msg_ctx(storage_mgr, env, key, ack_msg_ctx, AXIS2_FALSE);
         sandesha2_sender_mgr_insert(sender_mgr, env, ack_bean);
         
         transport_out = axis2_msg_ctx_get_transport_out_desc(ack_msg_ctx, env);



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