You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/03/03 06:52:28 UTC
svn commit: r382675 -
/webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
Author: damitha
Date: Thu Mar 2 21:52:27 2006
New Revision: 382675
URL: http://svn.apache.org/viewcvs?rev=382675&view=rev
Log:
Fixed a bug in conf_builder. In transport receivers it checks for
tranport inflow and if inflow is not null it return error. Obviously
this should be reverse. This error is also in axis2 java version in
an earlier version. Need to check whether it still exists.
Modified:
webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
Modified: webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c?rev=382675&r1=382674&r2=382675&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c Thu Mar 2 21:52:27 2006
@@ -559,7 +559,6 @@
axis2_om_children_qname_iterator_t *phases = NULL;
axis2_qname_t *qphase = NULL;
axis2_om_element_t *phase_orders_element;
- axis2_status_t status = AXIS2_FAILURE;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, phase_orders_node, AXIS2_FAILURE);
@@ -721,6 +720,7 @@
impl_info_param = axis2_param_create(env, class_name, NULL);
if(!impl_info_param)
{
+ AXIS2_TRANSPORT_OUT_DESC_FREE(transport_out, env);
return AXIS2_FAILURE;
}
dll_desc = axis2_dll_desc_create(env);
@@ -750,6 +750,7 @@
transport_sender);
if(AXIS2_SUCCESS != status)
{
+ AXIS2_TRANSPORT_OUT_DESC_FREE(transport_out, env);
return status;
}
@@ -759,10 +760,14 @@
itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(transport_element,
env, qparamst, transport_node);
AXIS2_QNAME_FREE(qparamst, env);
- AXIS2_DESC_BUILDER_PROCESS_PARAMS(conf_builder->desc_builder, env,
+ status = AXIS2_DESC_BUILDER_PROCESS_PARAMS(conf_builder->desc_builder, env,
itr, transport_out->param_container, builder_impl->conf->
param_container);
-
+ if(AXIS2_SUCCESS != status)
+ {
+ AXIS2_TRANSPORT_OUT_DESC_FREE(transport_out, env);
+ return status;
+ }
/* process INFLOW */
qinflowst = axis2_qname_create(env, AXIS2_INFLOWST, NULL, NULL);
in_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
@@ -770,6 +775,7 @@
AXIS2_QNAME_FREE(qinflowst, env);
if(NULL != in_flow_element)
{
+ AXIS2_TRANSPORT_OUT_DESC_FREE(transport_out, env);
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_INFLOW_NOT_ALLOWED_IN_TRS_OUT, AXIS2_FAILURE);
return AXIS2_FAILURE;
@@ -785,9 +791,11 @@
flow = AXIS2_DESC_BUILDER_PROCESS_FLOW(conf_builder->desc_builder,
env, out_flow_element, builder_impl->conf->param_container,
out_flow_node);
- if(flow)
+ status = AXIS2_TRANSPORT_OUT_DESC_SET_OUTFLOW(transport_out, env, flow);
+ if(AXIS2_SUCCESS != status)
{
- AXIS2_TRANSPORT_OUT_DESC_SET_OUTFLOW(transport_out, env, flow);
+ AXIS2_TRANSPORT_OUT_DESC_FREE(transport_out, env);
+ return status;
}
}
@@ -800,6 +808,7 @@
AXIS2_QNAME_FREE(qinfaultflowst, env);
if(NULL != in_fault_flow_element)
{
+ AXIS2_TRANSPORT_OUT_DESC_FREE(transport_out, env);
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_INFLOW_NOT_ALLOWED_IN_TRS_OUT, AXIS2_FAILURE);
return AXIS2_FAILURE;
@@ -818,14 +827,22 @@
flow = AXIS2_DESC_BUILDER_PROCESS_FLOW(conf_builder->desc_builder,
env, out_fault_flow_element, builder_impl->conf->param_container,
out_fault_flow_node);
- if(flow)
+ status = AXIS2_TRANSPORT_OUT_DESC_SET_FAULTFLOW(transport_out, env, flow);
+ if(AXIS2_SUCCESS != status)
{
- AXIS2_TRANSPORT_OUT_DESC_SET_FAULTFLOW(transport_out, env, flow);
+ AXIS2_TRANSPORT_OUT_DESC_FREE(transport_out, env);
+ return status;
}
}
/* adding to axis config */
- AXIS2_CONF_ADD_TRANSPORT_OUT(builder_impl->conf, env, transport_out);
+ status = AXIS2_CONF_ADD_TRANSPORT_OUT(builder_impl->conf, env,
+ transport_out);
+ if(AXIS2_SUCCESS != status)
+ {
+ AXIS2_TRANSPORT_OUT_DESC_FREE(transport_out, env);
+ return status;
+ }
}
}
return AXIS2_SUCCESS;
@@ -902,6 +919,10 @@
transport_in = axis2_transport_in_desc_create_with_qname(env,
transport_in_desc_qname);
AXIS2_QNAME_FREE(transport_in_desc_qname, env);
+ if(!transport_in)
+ {
+ return AXIS2_FAILURE;
+ }
/* transport impl class */
class_qname = axis2_qname_create(env, AXIS2_CLASSNAME, NULL, NULL);
@@ -962,37 +983,43 @@
itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(transport_element,
env, qparamst, transport_node);
AXIS2_QNAME_FREE(qparamst, env);
- AXIS2_DESC_BUILDER_PROCESS_PARAMS(conf_builder->desc_builder, env,
+ status = AXIS2_DESC_BUILDER_PROCESS_PARAMS(conf_builder->desc_builder, env,
itr, transport_in->param_container,
builder_impl->conf->param_container);
-
- /* process INFLOW */
- qinflowst = axis2_qname_create(env, AXIS2_INFLOWST, NULL, NULL);
- in_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
- transport_element, env, qinflowst, transport_node, &in_flow_node);
- AXIS2_QNAME_FREE(qinflowst, env);
- if(NULL != in_flow_element)
+ if(AXIS2_SUCCESS != status)
{
- AXIS2_ERROR_SET((*env)->error,
- AXIS2_ERROR_INFLOW_NOT_ALLOWED_IN_TRS_OUT, AXIS2_FAILURE);
- return AXIS2_FAILURE;
+ AXIS2_TRANSPORT_IN_DESC_FREE(transport_in, env);
+ return status;
}
-
+ /* process OUTFLOW */
qoutflowst = axis2_qname_create(env, AXIS2_OUTFLOWST, NULL, NULL);
out_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
transport_element, env, qoutflowst, transport_node, &out_flow_node);
AXIS2_QNAME_FREE(qoutflowst, env);
if(NULL != out_flow_element)
{
+ AXIS2_TRANSPORT_IN_DESC_FREE(transport_in, env);
+ AXIS2_ERROR_SET((*env)->error,
+ AXIS2_ERROR_OUTFLOW_NOT_ALLOWED_IN_TRS_IN, AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+
+ qinflowst = axis2_qname_create(env, AXIS2_INFLOWST, NULL, NULL);
+ in_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
+ transport_element, env, qinflowst, transport_node, &in_flow_node);
+ AXIS2_QNAME_FREE(qinflowst, env);
+ if(NULL != in_flow_element)
+ {
axis2_flow_t *flow = NULL;
flow = AXIS2_DESC_BUILDER_PROCESS_FLOW(conf_builder->
- desc_builder, env, out_flow_element, builder_impl->conf->
- param_container, out_flow_node);
+ desc_builder, env, in_flow_element, builder_impl->conf->
+ param_container, in_flow_node);
status = AXIS2_TRANSPORT_IN_DESC_SET_INFLOW(transport_in, env,
flow);
if(AXIS2_SUCCESS != status)
{
+ AXIS2_TRANSPORT_IN_DESC_FREE(transport_in, env);
return status;
}
}
@@ -1014,6 +1041,7 @@
env, flow);
if(AXIS2_SUCCESS != status)
{
+ AXIS2_TRANSPORT_IN_DESC_FREE(transport_in, env);
return status;
}
}
@@ -1035,6 +1063,7 @@
transport_in);
if(AXIS2_SUCCESS != status)
{
+ AXIS2_TRANSPORT_IN_DESC_FREE(transport_in, env);
return status;
}