From 62bcb27c130942a84160eac1893f3cdd1ab7b0ed Mon Sep 17 00:00:00 2001 From: shankar Date: Thu, 6 Oct 2011 05:44:18 +0000 Subject: Some frameworks (e.g WSE) sends empty faultstring. Hence checking for empty and continue without failing. git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@1179506 13f79535-47bb-0310-9956-ffa450edef68 --- axiom/src/om/axiom_element_internal.h | 5 +++++ axiom/src/om/om_element.c | 16 ++++++++-------- axiom/src/soap/soap11_builder_helper.c | 16 ++++++++++------ 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/axiom/src/om/axiom_element_internal.h b/axiom/src/om/axiom_element_internal.h index df515f9..81c9721 100644 --- a/axiom/src/om/axiom_element_internal.h +++ b/axiom/src/om/axiom_element_internal.h @@ -144,4 +144,9 @@ extern "C" const axutil_env_t * env, axis2_bool_t is_empty); + AXIS2_EXTERN axis2_bool_t AXIS2_CALL + axiom_element_get_is_empty( + axiom_element_t * om_element, + const axutil_env_t * env); + #endif /* AXIOM_ELEMENT_INTERNAL_H_ */ diff --git a/axiom/src/om/om_element.c b/axiom/src/om/om_element.c index 7a56b54..1e92a2d 100644 --- a/axiom/src/om/om_element.c +++ b/axiom/src/om/om_element.c @@ -1565,6 +1565,14 @@ axiom_element_set_is_empty( om_element->is_empty = is_empty; } +AXIS2_EXTERN axis2_bool_t AXIS2_CALL +axiom_element_get_is_empty( + axiom_element_t * om_element, + const axutil_env_t * env) +{ + return om_element->is_empty; +} + /** * This method will declare the namespace without checking whether it is already declared. * (This method is only used by codegen. We have to remove this method in future) @@ -1859,14 +1867,6 @@ axiom_element_create_str( return element; } -AXIS2_EXTERN axis2_bool_t AXIS2_CALL -axiom_element_get_is_empty( - axiom_element_t * om_element, - const axutil_env_t * env) -{ - return om_element->is_empty; -} - AXIS2_EXTERN axis2_status_t AXIS2_CALL axiom_element_remove_attribute( axiom_element_t * om_element, diff --git a/axiom/src/soap/soap11_builder_helper.c b/axiom/src/soap/soap11_builder_helper.c index ab2e4d8..f6c4c65 100644 --- a/axiom/src/soap/soap11_builder_helper.c +++ b/axiom/src/soap/soap11_builder_helper.c @@ -29,6 +29,7 @@ #include "_axiom_soap_fault_role.h" #include #include +#include static axis2_status_t axiom_soap11_builder_helper_process_text( @@ -223,12 +224,15 @@ axiom_soap11_builder_helper_handle_event( return AXIS2_FAILURE; } axiom_stax_builder_set_lastnode(builder_helper->om_builder, env, fault_text_node); - - status = axiom_soap11_builder_helper_process_text(builder_helper, env); - if(status == AXIS2_FAILURE) - { - return AXIS2_FAILURE; - } + + if (axiom_element_get_is_empty(om_ele, env) != AXIS2_TRUE) + { + status = axiom_soap11_builder_helper_process_text(builder_helper, env); + if(status == AXIS2_FAILURE) + { + return AXIS2_FAILURE; + } + } axiom_stax_builder_set_lastnode(builder_helper->om_builder, env, om_element_node); axiom_node_set_complete(om_element_node, env, AXIS2_TRUE); -- cgit v1.1-32-gdbae