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/02 18:57:01 UTC
svn commit: r682013 - in
/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src:
msgprocessors/ storage/beans/ util/
Author: damitha
Date: Sat Aug 2 09:57:00 2008
New Revision: 682013
URL: http://svn.apache.org/viewvc?rev=682013&view=rev
Log:
Fixing memory leaks
Modified:
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/app_msg_processor.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/create_seq_msg_processor.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/terminate_seq_msg_processor.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/storage/beans/seq_property_bean.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/sandesha2_utils.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/seq_mgr.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/spec_specific_consts.c
webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/terminate_mgr.c
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/app_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/app_msg_processor.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/app_msg_processor.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/app_msg_processor.c Sat Aug 2 09:57:00 2008
@@ -421,6 +421,7 @@
}
sandesha2_msg_ctx_add_soap_envelope(rm_msg_ctx, env);
+
fault_ctx = sandesha2_fault_mgr_check_for_seq_closed(env, rm_msg_ctx, rmd_sequence_id, seq_prop_mgr);
if(fault_ctx)
{
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/create_seq_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/create_seq_msg_processor.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/create_seq_msg_processor.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/create_seq_msg_processor.c Sat Aug 2 09:57:00 2008
@@ -243,8 +243,8 @@
out_msg_ctx = sandesha2_utils_create_out_msg_ctx(env, create_seq_msg_ctx);
- rmd_sequence_id = sandesha2_seq_mgr_setup_new_rmd_sequence(env, rm_msg_ctx,
- seq_prop_mgr, next_msg_mgr);
+ rmd_sequence_id = sandesha2_seq_mgr_setup_new_rmd_sequence(env, rm_msg_ctx, seq_prop_mgr,
+ next_msg_mgr);
create_seq_res_msg = sandesha2_msg_creator_create_create_seq_res_msg(env, rm_msg_ctx,
out_msg_ctx, rmd_sequence_id, seq_prop_mgr);
@@ -253,14 +253,21 @@
if(!create_seq_res_msg)
{
+ if(rmd_sequence_id)
+ {
+ AXIS2_FREE(env->allocator, rmd_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(next_msg_mgr)
{
sandesha2_next_msg_mgr_free(next_msg_mgr, env);
@@ -295,14 +302,21 @@
"[sandesha2] Accept part has not genereated for a message with offer");
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_REQD_MSG_PART_MISSING, AXIS2_FAILURE);
+ if(rmd_sequence_id)
+ {
+ AXIS2_FREE(env->allocator, rmd_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(next_msg_mgr)
{
sandesha2_next_msg_mgr_free(next_msg_mgr, env);
@@ -348,20 +362,33 @@
sandesha2_create_seq_mgr_insert(create_seq_mgr, env, create_seq_bean);*/
rms_sequence_bean = sandesha2_seq_property_bean_create(env);
- sandesha2_seq_property_bean_set_name(rms_sequence_bean, env, SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);
+ if(rms_sequence_bean)
+ {
+ sandesha2_seq_property_bean_set_name(rms_sequence_bean, env, SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID);
- sandesha2_seq_property_bean_set_seq_id(rms_sequence_bean, env, rms_internal_seq_id);
- sandesha2_seq_property_bean_set_value(rms_sequence_bean, env, rms_sequence_id);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] rmd_sequence_id:%s", rmd_sequence_id);
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, rms_sequence_bean);
+ sandesha2_seq_property_bean_set_seq_id(rms_sequence_bean, env, rms_internal_seq_id);
+ sandesha2_seq_property_bean_set_value(rms_sequence_bean, env, rms_sequence_id);
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] rmd_sequence_id:%s", rmd_sequence_id);
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, rms_sequence_bean);
+ sandesha2_seq_property_bean_free(rms_sequence_bean, env);
+ }
rms_internal_sequence_bean = sandesha2_seq_property_bean_create(env);
- sandesha2_seq_property_bean_set_name(rms_internal_sequence_bean, env,
+ if(rms_internal_sequence_bean)
+ {
+ sandesha2_seq_property_bean_set_name(rms_internal_sequence_bean, env,
SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID);
- sandesha2_seq_property_bean_set_seq_id(rms_internal_sequence_bean, env, rms_sequence_id);
- sandesha2_seq_property_bean_set_value(rms_internal_sequence_bean, env, rms_internal_seq_id);
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, rms_internal_sequence_bean);
+ sandesha2_seq_property_bean_set_seq_id(rms_internal_sequence_bean, env, rms_sequence_id);
+ sandesha2_seq_property_bean_set_value(rms_internal_sequence_bean, env, rms_internal_seq_id);
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, rms_internal_sequence_bean);
+ sandesha2_seq_property_bean_free(rms_internal_sequence_bean, env);
+ }
+
+ if(rms_internal_seq_id)
+ {
+ AXIS2_FREE(env->allocator, rms_internal_seq_id);
+ }
}
else
{
@@ -377,14 +404,21 @@
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2]Acks to is null");
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_INVALID_EPR, AXIS2_FAILURE);
+ if(rmd_sequence_id)
+ {
+ AXIS2_FREE(env->allocator, rmd_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(next_msg_mgr)
{
sandesha2_next_msg_mgr_free(next_msg_mgr, env);
@@ -396,8 +430,11 @@
acks_to_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id,
SANDESHA2_SEQ_PROP_ACKS_TO_EPR, (axis2_char_t*)axis2_endpoint_ref_get_address(acks_to,
env));
-
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, acks_to_bean);
+ if(acks_to_bean)
+ {
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, acks_to_bean);
+ sandesha2_seq_property_bean_free(acks_to_bean, env);
+ }
axis2_op_ctx_set_response_written(op_ctx, env, AXIS2_TRUE);
sandesha2_seq_mgr_update_last_activated_time(env, rmd_sequence_id, seq_prop_mgr);
@@ -422,15 +459,23 @@
SANDESHA2_SEQ_PROP_TO_EPR);
if(!to_bean)
{
- AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2]wsa:To is not set");
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] wsa:To is not set");
+
+ if(rmd_sequence_id)
+ {
+ AXIS2_FREE(env->allocator, rmd_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(next_msg_mgr)
{
sandesha2_next_msg_mgr_free(next_msg_mgr, env);
@@ -457,18 +502,27 @@
{
axis2_op_ctx_set_response_written(op_ctx, env, AXIS2_FALSE);
}
+
+ sandesha2_seq_property_bean_free(to_bean, env);
/* Pausing the flow here so that it won't go to a message receiver which is not set for this flow */
sandesha2_msg_ctx_set_paused(rm_msg_ctx, env, AXIS2_TRUE);
+ if(rmd_sequence_id)
+ {
+ AXIS2_FREE(env->allocator, rmd_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(next_msg_mgr)
{
sandesha2_next_msg_mgr_free(next_msg_mgr, env);
@@ -513,7 +567,11 @@
AXIS2_PARAM_CHECK(env->error, create_seq_mgr, AXIS2_FALSE);
find_create_seq_bean = sandesha2_create_seq_bean_create_with_data(env, NULL, NULL, seq_id);
- list = sandesha2_create_seq_mgr_find(create_seq_mgr, env, find_create_seq_bean);
+ if(find_create_seq_bean)
+ {
+ list = sandesha2_create_seq_mgr_find(create_seq_mgr, env, find_create_seq_bean);
+ sandesha2_create_seq_bean_free(find_create_seq_bean, env);
+ }
if(list)
{
@@ -540,7 +598,11 @@
}
find_seq_property_bean = sandesha2_seq_property_bean_create_with_data(env, NULL, NULL, seq_id);
- list = sandesha2_seq_property_mgr_find(seq_property_mgr, env, find_seq_property_bean);
+ if(find_seq_property_bean)
+ {
+ list = sandesha2_seq_property_mgr_find(seq_property_mgr, env, find_seq_property_bean);
+ sandesha2_seq_property_bean_free(find_seq_property_bean, env);
+ }
if(list)
{
@@ -569,7 +631,11 @@
internal_seq_id = sandesha2_seq_property_bean_get_value(seq_prop_bean, env);
temp_find_bean = sandesha2_seq_property_bean_create_with_data(env, NULL, NULL, internal_seq_id);
- temp_list = sandesha2_seq_property_mgr_find(seq_property_mgr, env, temp_find_bean);
+ if(temp_find_bean)
+ {
+ temp_list = sandesha2_seq_property_mgr_find(seq_property_mgr, env, temp_find_bean);
+ sandesha2_seq_property_bean_free(temp_find_bean, env);
+ }
if(temp_list)
{
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/terminate_seq_msg_processor.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/terminate_seq_msg_processor.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/terminate_seq_msg_processor.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/msgprocessors/terminate_seq_msg_processor.c Sat Aug 2 09:57:00 2008
@@ -203,15 +203,18 @@
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[sandesha2] Terminate Sequence part is not available");
+
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_REQD_MSG_PART_MISSING, AXIS2_FAILURE);
+
return AXIS2_FAILURE;
}
rmd_sequence_id = sandesha2_identifier_get_identifier(sandesha2_terminate_seq_get_identifier(
- term_seq, env), env);
+ term_seq, env), env);
if(!rmd_sequence_id || 0 == axutil_strlen(rmd_sequence_id))
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[sandesha2] Invalid sequence id");
+
return AXIS2_FAILURE;
}
@@ -334,6 +337,11 @@
internal_sequence_id, storage_mgr, seq_prop_mgr, create_seq_mgr, sender_mgr);
}
}
+
+ if(internal_sequence_id)
+ {
+ AXIS2_FREE(env->allocator, internal_sequence_id);
+ }
}
else
{
@@ -415,8 +423,10 @@
highest_in_msg_num_str = sandesha2_utils_get_seq_property(env, seq_id,
SANDESHA2_SEQ_PROP_HIGHEST_IN_MSG_NUMBER, seq_prop_mgr);
+
highest_in_msg_id = sandesha2_utils_get_seq_property(env, seq_id,
SANDESHA2_SEQ_PROP_HIGHEST_IN_MSG_ID, seq_prop_mgr);
+
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2]highest_in_msg_num_str:%s",
highest_in_msg_num_str);
@@ -426,6 +436,7 @@
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[sandesha2] highest in msg id has not been stored");
+
if(highest_in_msg_num_str)
{
AXIS2_FREE(env->allocator, highest_in_msg_num_str);
@@ -477,6 +488,7 @@
highest_out_msg_num_str = sandesha2_utils_get_seq_property(env, rec_side_int_seq_id,
SANDESHA2_SEQ_PROP_HIGHEST_OUT_MSG_NUMBER, seq_prop_mgr);
+
highest_out_msg_num = atol(highest_out_msg_num_str);
add_rec_side_term = AXIS2_TRUE;
if(highest_out_msg_num_str)
@@ -497,6 +509,7 @@
}
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2]add_rec_side_term:%d", add_rec_side_term);
+
out_seq_id = sandesha2_utils_get_seq_property(env, rec_side_int_seq_id,
SANDESHA2_SEQUENCE_PROPERTY_RMS_SEQ_ID, seq_prop_mgr);
@@ -552,11 +565,13 @@
sandesha2_sender_bean_t *term_res_bean = NULL;
axis2_char_t *key = NULL;
sandesha2_sender_mgr_t *retrans_mgr = NULL;*/
+
AXIS2_PARAM_CHECK(env->error, rm_msg_ctx, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, seq_id, AXIS2_FAILURE);
AXIS2_PARAM_CHECK(env->error, seq_prop_mgr, AXIS2_FAILURE);
- AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[sandesha2]Entry:sandesha2_"\
- "terminate_seq_msg_processor_add_terminate_seq_res");
+
+ AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI,
+ "[sandesha2] Entry:sandesha2_terminate_seq_msg_processor_add_terminate_seq_res");
msg_ctx = sandesha2_msg_ctx_get_msg_ctx(rm_msg_ctx, env);
out_msg_ctx = sandesha2_utils_create_out_msg_ctx(env, msg_ctx);
@@ -617,7 +632,9 @@
/* end test code */
engine = axis2_engine_create(env, axis2_msg_ctx_get_conf_ctx(msg_ctx, env));
+
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2]axis2_engine_send");
+
axis2_engine_send(engine, env, out_msg_ctx);
op_ctx = axis2_msg_ctx_get_op_ctx(out_msg_ctx, env);
if(to_epr)
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/storage/beans/seq_property_bean.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/storage/beans/seq_property_bean.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/storage/beans/seq_property_bean.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/storage/beans/seq_property_bean.c Sat Aug 2 09:57:00 2008
@@ -171,8 +171,10 @@
AXIS2_FREE(env->allocator, seq_property_bean->value);
seq_property_bean->value = NULL;
}
+
if(value)
+ {
seq_property_bean->value = (axis2_char_t *)axutil_strdup(env, value);
-
+ }
}
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/msg_creator.c Sat Aug 2 09:57:00 2008
@@ -594,6 +594,7 @@
sandesha2_msg_ctx_set_terminate_seq(terminate_rm_msg, env, terminate_seq);
sandesha2_msg_creator_finalize_creation(env, ref_msg_ctx, terminate_seq_msg_ctx);
axis2_msg_ctx_set_property(terminate_seq_msg_ctx, env, AXIS2_TRANSPORT_IN, NULL);
+
return terminate_rm_msg;
}
@@ -637,22 +638,27 @@
rm_version = sandesha2_utils_get_rm_version(env, seq_id, seq_prop_mgr);
if(!rm_version)
{
- rm_version = sandesha2_msg_ctx_get_rm_spec_ver(ref_rm_msg, env);
+ rm_version = axutil_strdup(env, sandesha2_msg_ctx_get_rm_spec_ver(ref_rm_msg, env));
}
- temp_action = sandesha2_spec_specific_consts_get_teminate_seq_res_action(
- env, rm_version);
+
+ temp_action = sandesha2_spec_specific_consts_get_teminate_seq_res_action(env, rm_version);
if(rm_version)
+ {
AXIS2_FREE(env->allocator, rm_version);
+ }
+
axis2_msg_ctx_set_wsa_action(out_msg, env, temp_action);
soap_action = axutil_string_create(env, temp_action);
- axis2_msg_ctx_set_soap_action(out_msg, env, soap_action);
- sandesha2_msg_creator_init_creation(env, sandesha2_msg_ctx_get_msg_ctx(
- ref_rm_msg, env), out_msg);
+ axis2_msg_ctx_set_soap_action(out_msg, env, soap_action);
+ axutil_string_free(soap_action, env);
+ sandesha2_msg_creator_init_creation(env, sandesha2_msg_ctx_get_msg_ctx(ref_rm_msg, env),
+ out_msg);
+
sandesha2_msg_ctx_add_soap_envelope(ref_rm_msg, env);
- sandesha2_msg_creator_finalize_creation(env, sandesha2_msg_ctx_get_msg_ctx(
- ref_rm_msg, env), out_msg);
- axis2_msg_ctx_set_server_side(sandesha2_msg_ctx_get_msg_ctx(ref_rm_msg, env),
- env, AXIS2_TRUE);
+ sandesha2_msg_creator_finalize_creation(env, sandesha2_msg_ctx_get_msg_ctx(ref_rm_msg, env),
+ out_msg);
+
+ axis2_msg_ctx_set_server_side(sandesha2_msg_ctx_get_msg_ctx(ref_rm_msg, env), env, AXIS2_TRUE);
return res_rm_msg;
}
@@ -795,7 +801,7 @@
axis2_msg_ctx_t *related_msg,
axis2_msg_ctx_t *new_msg)
{
- axis2_svc_t *related_svc = NULL;
+ /*axis2_svc_t *related_svc = NULL;
axis2_svc_t *new_svc = NULL;
related_svc = axis2_msg_ctx_get_svc(related_msg, env);
@@ -804,19 +810,17 @@
{
axutil_param_t *ref_policy_param = NULL;
- ref_policy_param = axis2_svc_get_param(related_svc, env,
- SANDESHA2_SANDESHA_PROPERTY_BEAN);
+ ref_policy_param = axis2_svc_get_param(related_svc, env, SANDESHA2_SANDESHA_PROPERTY_BEAN);
if(ref_policy_param)
{
void *value = NULL;
axutil_param_t *new_policy_param = NULL;
value = axutil_param_get_value(ref_policy_param, env);
- new_policy_param = axutil_param_create(env,
- SANDESHA2_SANDESHA_PROPERTY_BEAN, value);
+ new_policy_param = axutil_param_create(env, SANDESHA2_SANDESHA_PROPERTY_BEAN, value);
}
- }
+ }*/
return AXIS2_SUCCESS;
}
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/sandesha2_utils.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/sandesha2_utils.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/sandesha2_utils.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/sandesha2_utils.c Sat Aug 2 09:57:00 2008
@@ -1030,28 +1030,40 @@
axutil_array_list_t *acked_msgs_list = NULL;
long smallest_msg_no = 1;
long temp_msg_no = 0;
+ axis2_bool_t ret = AXIS2_TRUE;
+
+ client_completed_msgs = sandesha2_utils_get_seq_property(env, internal_seq_id,
+ SANDESHA2_SEQ_PROP_CLIENT_COMPLETED_MESSAGES, seq_prop_mgr);
+
+ if(client_completed_msgs)
+ {
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "[sandesha2] Client_completed_msgs:%s",
+ client_completed_msgs);
+
+ acked_msgs_list = sandesha2_utils_get_array_list_from_string(env, client_completed_msgs);
+ AXIS2_FREE(env->allocator, client_completed_msgs);
+ }
- client_completed_msgs = sandesha2_utils_get_seq_property(env,
- internal_seq_id, SANDESHA2_SEQ_PROP_CLIENT_COMPLETED_MESSAGES,
- seq_prop_mgr);
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[sandesha2]client_completed_msgs:%s", client_completed_msgs);
- acked_msgs_list = sandesha2_utils_get_array_list_from_string(env,
- client_completed_msgs);
if(!acked_msgs_list)
+ {
return AXIS2_FALSE;
- for(temp_msg_no = smallest_msg_no; temp_msg_no <= highest_in_msg_no;
- temp_msg_no++)
+ }
+
+ for(temp_msg_no = smallest_msg_no; temp_msg_no <= highest_in_msg_no; temp_msg_no++)
{
axis2_char_t str_msg_no[32];
+
sprintf(str_msg_no, "%ld", temp_msg_no);
- if(!sandesha2_utils_array_list_contains(env, acked_msgs_list,
- str_msg_no))
+ if(!sandesha2_utils_array_list_contains(env, acked_msgs_list, str_msg_no))
{
- return AXIS2_FALSE;
+ ret = AXIS2_FALSE;
+ break;
}
}
- return AXIS2_TRUE; /* All messages upto the highest have been acked */
+
+ axutil_array_list_free(acked_msgs_list, env);
+
+ return ret; /* All messages upto the highest have been acked */
}
axis2_status_t AXIS2_CALL
@@ -1266,6 +1278,7 @@
AXIS2_FREE(env->allocator, msg_uuid);
msg_uuid = NULL;
}
+
reply_to = axis2_msg_info_headers_get_reply_to(old_msg_info_headers, env);
axis2_msg_info_headers_set_to(msg_info_headers, env, sandesha2_util_endpoint_ref_clone(env,
reply_to));
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/seq_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/seq_mgr.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/seq_mgr.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/seq_mgr.c Sat Aug 2 09:57:00 2008
@@ -107,17 +107,19 @@
AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_ACKS_TO_IS_NULL, AXIS2_FAILURE);
return NULL;
}
+
msg_ctx = sandesha2_msg_ctx_get_msg_ctx(create_seq_msg, env);
conf_ctx = axis2_msg_ctx_get_conf_ctx(msg_ctx, env);
- received_msg_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id,
- SANDESHA2_SEQ_PROP_SERVER_COMPLETED_MESSAGES, "");
/* Setting the addressing version */
addressing_ns_value = sandesha2_msg_ctx_get_addr_ns_val(create_seq_msg, env);
addressing_ns_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id,
SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, addressing_ns_value);
-
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, addressing_ns_bean);
+ if(addressing_ns_bean)
+ {
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, addressing_ns_bean);
+ sandesha2_seq_property_bean_free(addressing_ns_bean, env);
+ }
anonymous_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addressing_ns_value);
/* If no replyTo value. Send responses as sync. */
@@ -133,27 +135,49 @@
SANDESHA2_SEQ_PROP_TO_EPR, anonymous_uri);
}
+ if(to_bean)
+ {
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, to_bean);
+ sandesha2_seq_property_bean_free(to_bean, env);
+ }
+
address = (axis2_char_t*)axis2_endpoint_ref_get_address(to, env);
reply_to_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id,
SANDESHA2_SEQ_PROP_REPLY_TO_EPR, address);
+ if(reply_to_bean)
+ {
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, reply_to_bean);
+ sandesha2_seq_property_bean_free(reply_to_bean, env);
+ }
address = (axis2_char_t*)axis2_endpoint_ref_get_address(acks_to, env);
acks_to_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id,
SANDESHA2_SEQ_PROP_ACKS_TO_EPR, address);
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, received_msg_bean);
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, reply_to_bean);
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, acks_to_bean);
- if(to_bean)
+ if(acks_to_bean)
{
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, to_bean);
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, acks_to_bean);
+ sandesha2_seq_property_bean_free(acks_to_bean, env);
}
+ received_msg_bean = sandesha2_seq_property_bean_create_with_data(env, rmd_sequence_id,
+ SANDESHA2_SEQ_PROP_SERVER_COMPLETED_MESSAGES, "");
+ if(received_msg_bean)
+ {
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, received_msg_bean);
+ sandesha2_seq_property_bean_free(received_msg_bean, env);
+ }
+
+
next_msg_bean = sandesha2_next_msg_bean_create_with_data(env, rmd_sequence_id, 1);
/* 1 will be the next */
- internal_sequence_id = sandesha2_utils_get_internal_sequence_id(env, rmd_sequence_id);
- sandesha2_next_msg_bean_set_internal_seq_id(next_msg_bean, env, internal_sequence_id);
- sandesha2_next_msg_mgr_insert(next_msg_mgr, env, next_msg_bean);
+ if(next_msg_bean)
+ {
+ internal_sequence_id = sandesha2_utils_get_internal_sequence_id(env, rmd_sequence_id);
+ sandesha2_next_msg_bean_set_internal_seq_id(next_msg_bean, env, internal_sequence_id);
+ sandesha2_next_msg_mgr_insert(next_msg_mgr, env, next_msg_bean);
+ sandesha2_next_msg_bean_free(next_msg_bean, env);
+ }
/* Message to invoke. This will apply for only in-order invocations */
/*if(!axis2_msg_ctx_get_server_side(msg_ctx, env) || !sandesha2_utils_is_anon_uri(env,
@@ -191,12 +215,21 @@
}
spec_version_bean = sandesha2_seq_property_bean_create(env);
- sandesha2_seq_property_bean_set_seq_id(spec_version_bean, env, rmd_sequence_id);
- sandesha2_seq_property_bean_set_name(spec_version_bean, env, SANDESHA2_SEQ_PROP_RM_SPEC_VERSION);
- sandesha2_seq_property_bean_set_value(spec_version_bean, env, spec_version);
+ if(spec_version_bean)
+ {
+ sandesha2_seq_property_bean_set_seq_id(spec_version_bean, env, rmd_sequence_id);
+ sandesha2_seq_property_bean_set_name(spec_version_bean, env, SANDESHA2_SEQ_PROP_RM_SPEC_VERSION);
+ sandesha2_seq_property_bean_set_value(spec_version_bean, env, spec_version);
- sandesha2_seq_property_mgr_insert(seq_prop_mgr,env, spec_version_bean);
- sandesha2_seq_property_bean_free(spec_version_bean, env);
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr,env, spec_version_bean);
+ sandesha2_seq_property_bean_free(spec_version_bean, env);
+ }
+
+ if(spec_version)
+ {
+ AXIS2_FREE(env->allocator, spec_version);
+ }
+
/* TODO Get the SOAP version from the creaet sequence message */
AXIS2_LOG_TRACE(env->log, AXIS2_LOG_SI, "[sandesha2]Entry:sandesha2_seq_mgr_setup_new_rmd_sequence");
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/spec_specific_consts.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/spec_specific_consts.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/spec_specific_consts.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/spec_specific_consts.c Sat Aug 2 09:57:00 2008
@@ -323,7 +323,6 @@
const axutil_env_t *env,
axis2_char_t *spec_version)
{
- AXIS2_ENV_CHECK(env, NULL);
AXIS2_PARAM_CHECK(env->error, spec_version, NULL);
if (0 == axutil_strcmp(SANDESHA2_SPEC_VERSION_1_1, spec_version))
Modified: webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/terminate_mgr.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/terminate_mgr.c?rev=682013&r1=682012&r2=682013&view=diff
==============================================================================
--- webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/tags/sandesha2/c/worker_thread_removed-23may2008/src/util/terminate_mgr.c Sat Aug 2 09:57:00 2008
@@ -261,7 +261,7 @@
if(bean)
{
axis2_char_t *key = NULL;
- axis2_char_t *seq_id = NULL;
+ axis2_char_t *temp_seq_id = NULL;
key = sandesha2_next_msg_bean_get_ref_msg_key(bean, env);
if(key)
@@ -269,10 +269,10 @@
sandesha2_storage_mgr_remove_msg_ctx(storage_mgr, env, key, conf_ctx, -1);
}
- seq_id = sandesha2_next_msg_bean_get_seq_id(bean, env);
- if(seq_id)
+ temp_seq_id = sandesha2_next_msg_bean_get_seq_id(bean, env);
+ if(temp_seq_id)
{
- sandesha2_next_msg_mgr_remove(next_msg_mgr, env, seq_id);
+ sandesha2_next_msg_mgr_remove(next_msg_mgr, env, temp_seq_id);
}
}
@@ -322,6 +322,7 @@
all_seq_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env,
SANDESHA2_SEQ_PROP_ALL_SEQS, SANDESHA2_SEQ_PROP_INCOMING_SEQ_LIST);
+
if(all_seq_bean)
{
axutil_array_list_t *all_seq_list = NULL;
@@ -331,27 +332,54 @@
sandesha2_seq_property_bean_get_value(all_seq_bean, env));
if(all_seq_list)
{
- int i = 0;
- for(i = 0; i < axutil_array_list_size(all_seq_list, env); i++)
+ int i = 0, j = 0, size = 0;
+
+ size = axutil_array_list_size(all_seq_list, env);
+
+ for(i = 0; i < size; i++)
{
axis2_char_t *value = axutil_array_list_get(all_seq_list, env, i);
- if(0 == axutil_strcmp(value, seq_id))
+
+ if(value)
{
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
- "[sandesha2]Removing seq id:%s from the all incoming "\
- "sequence list", value);
- axutil_array_list_remove(all_seq_list, env, i);
- break;
+ if(!axutil_strcmp(value, seq_id))
+ {
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ "[sandesha2]Removing seq id:%s from the all incoming sequence list", value);
+ axutil_array_list_remove(all_seq_list, env, i);
+ AXIS2_FREE(env->allocator, value);
+ break;
+ }
+
+ AXIS2_FREE(env->allocator, value);
+ }
+ }
+
+ for(j = i++; j < size; j++)
+ {
+ axis2_char_t *value = axutil_array_list_get(all_seq_list, env, i);
+ if(value)
+ {
+ AXIS2_FREE(env->allocator, value);
}
}
+
all_seq_str = sandesha2_utils_array_list_to_string(env, all_seq_list,
SANDESHA2_ARRAY_LIST_STRING);
+
sandesha2_seq_property_bean_set_value(all_seq_bean, env, all_seq_str);
if(all_seq_str)
+ {
AXIS2_FREE(env->allocator, all_seq_str);
+ }
+
sandesha2_seq_property_mgr_update(seq_prop_mgr, env, all_seq_bean);
+ axutil_array_list_free(all_seq_list, env);
}
+
+ sandesha2_seq_property_bean_free(all_seq_bean, env);
}
+
find_seq_prop_bean = sandesha2_seq_property_bean_create(env);
sandesha2_seq_property_bean_set_seq_id(find_seq_prop_bean, env, seq_id);
found_list = sandesha2_seq_property_mgr_find(seq_prop_mgr, env, find_seq_prop_bean);
@@ -371,7 +399,7 @@
sandesha2_seq_property_bean_get_name(seq_prop_bean, env)))
{
axis2_char_t *highest_in_msg_key_str = NULL;
- axis2_char_t *seq_id = sandesha2_seq_property_bean_get_seq_id(seq_prop_bean, env);
+ axis2_char_t *temp_seq_id = sandesha2_seq_property_bean_get_seq_id(seq_prop_bean, env);
axis2_char_t *name = sandesha2_seq_property_bean_get_name(seq_prop_bean, env);
if(!axutil_strcmp(name, SANDESHA2_SEQ_PROP_HIGHEST_IN_MSG_NUMBER))
@@ -386,9 +414,9 @@
AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[sandesha2] Removing the sequence property named %s in the sequence %s",
- name, seq_id);
+ name, temp_seq_id);
- sandesha2_seq_property_mgr_remove(seq_prop_mgr, env, seq_id, name);
+ sandesha2_seq_property_mgr_remove(seq_prop_mgr, env, temp_seq_id, name);
}
sandesha2_seq_property_bean_free(seq_prop_bean, env);
@@ -832,16 +860,23 @@
terminated = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, rms_sequence_id,
SANDESHA2_SEQ_PROP_TERMINATE_ADDED);
- if(terminated && sandesha2_seq_property_bean_get_value(terminated, env) && 0 == axutil_strcmp(
- AXIS2_VALUE_TRUE, sandesha2_seq_property_bean_get_value(terminated, env)))
+ if(terminated)
{
- AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
+ axis2_char_t *value = sandesha2_seq_property_bean_get_value(terminated, env);
+
+ if(value && !axutil_strcmp(AXIS2_VALUE_TRUE, value))
+ {
+ AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
"[sandesha2] Terminate sequence message was added previously");
- /* If we do not return at this, there will be two terminate messsages
- * sent to the client
- */
- return AXIS2_SUCCESS;
+ /* If we do not return at this, there will be two terminate messsages
+ * sent to the client
+ */
+ sandesha2_seq_property_bean_free(terminated, env);
+ return AXIS2_SUCCESS;
+ }
+
+ sandesha2_seq_property_bean_free(terminated, env);
}
terminate_rm_msg_ctx = sandesha2_msg_creator_create_terminate_seq_msg(env, ack_rm_msg_ctx,
@@ -932,15 +967,13 @@
is_svr_side, storage_mgr, seq_prop_mgr, create_seq_mgr, sender_mgr);
terminate_added = sandesha2_seq_property_bean_create(env);
- sandesha2_seq_property_bean_set_name(terminate_added, env,
- SANDESHA2_SEQ_PROP_TERMINATE_ADDED);
-
- sandesha2_seq_property_bean_set_seq_id(terminate_added, env, rms_sequence_id);
- sandesha2_seq_property_bean_set_value(terminate_added, env, AXIS2_VALUE_TRUE);
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, terminate_added);
-
if(terminate_added)
{
+ sandesha2_seq_property_bean_set_name(terminate_added, env, SANDESHA2_SEQ_PROP_TERMINATE_ADDED);
+
+ sandesha2_seq_property_bean_set_seq_id(terminate_added, env, rms_sequence_id);
+ sandesha2_seq_property_bean_set_value(terminate_added, env, AXIS2_VALUE_TRUE);
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, terminate_added);
sandesha2_seq_property_bean_free(terminate_added, env);
}
@@ -1129,16 +1162,14 @@
sandesha2_terminate_mgr_terminate_sending_side(env, conf_ctx, internal_sequence_id, is_svr_side,
storage_mgr, seq_prop_mgr, create_seq_mgr, sender_mgr);
- terminate_added = sandesha2_seq_property_bean_create(env);
-
- sandesha2_seq_property_bean_set_name(terminate_added, env, SANDESHA2_SEQ_PROP_TERMINATE_ADDED);
-
- sandesha2_seq_property_bean_set_seq_id(terminate_added, env, rms_sequence_id);
- sandesha2_seq_property_bean_set_value(terminate_added, env, AXIS2_VALUE_TRUE);
- sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, terminate_added);
+ terminate_added = sandesha2_seq_property_bean_create(env);
if(terminate_added)
{
+ sandesha2_seq_property_bean_set_name(terminate_added, env, SANDESHA2_SEQ_PROP_TERMINATE_ADDED);
+ sandesha2_seq_property_bean_set_seq_id(terminate_added, env, rms_sequence_id);
+ sandesha2_seq_property_bean_set_value(terminate_added, env, AXIS2_VALUE_TRUE);
+ sandesha2_seq_property_mgr_insert(seq_prop_mgr, env, terminate_added);
sandesha2_seq_property_bean_free(terminate_added, env);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org