summaryrefslogtreecommitdiffstats
path: root/axiom/src/soap
diff options
context:
space:
mode:
Diffstat (limited to 'axiom/src/soap')
-rw-r--r--axiom/src/soap/soap_body.c29
-rw-r--r--axiom/src/soap/soap_builder.c1
2 files changed, 18 insertions, 12 deletions
diff --git a/axiom/src/soap/soap_body.c b/axiom/src/soap/soap_body.c
index 8fb7d8f..69ee7ae 100644
--- a/axiom/src/soap/soap_body.c
+++ b/axiom/src/soap/soap_body.c
@@ -144,21 +144,26 @@ axiom_soap_body_has_fault(
}
else
{
- while(!axiom_node_is_complete(soap_body->om_ele_node, env))
+ /* This soap body could have been built programatically. Do the following only if soap
+ * body is created from soap_builder */
+ if(soap_body->soap_builder)
{
- if(axiom_soap_builder_next(soap_body->soap_builder, env) != AXIS2_SUCCESS)
+ while(!axiom_node_is_complete(soap_body->om_ele_node, env))
{
- /* problem in building the SOAP body. Note that has_fault is about soap fault,
- * not about problem in building the node. So, even though there is a problem
- * building the body, has_fault should be AXIS2_FALSE
- */
- break;
- }
+ if(axiom_soap_builder_next(soap_body->soap_builder, env) != AXIS2_SUCCESS)
+ {
+ /* problem in building the SOAP body. Note that has_fault is about soap fault,
+ * not about problem in building the node. So, even though there is a problem
+ * building the body, has_fault should be AXIS2_FALSE
+ */
+ break;
+ }
- if(soap_body->soap_fault)
- {
- soap_body->has_fault = AXIS2_TRUE;
- break;
+ if(soap_body->soap_fault)
+ {
+ soap_body->has_fault = AXIS2_TRUE;
+ break;
+ }
}
}
}
diff --git a/axiom/src/soap/soap_builder.c b/axiom/src/soap/soap_builder.c
index 0b5829e..f8236ad 100644
--- a/axiom/src/soap/soap_builder.c
+++ b/axiom/src/soap/soap_builder.c
@@ -151,6 +151,7 @@ axiom_soap_builder_create(
soap_builder->soap_version = AXIOM_SOAP12;
soap_builder->last_node_status = -1;
soap_builder->om_builder = stax_builder;
+ soap_builder->done = AXIS2_FALSE;
status = axiom_soap_builder_identify_soap_version(soap_builder, env, soap_version);
if(status != AXIS2_SUCCESS)