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 na...@apache.org on 2006/03/16 05:06:29 UTC
svn commit: r386253 [1/3] - in /webservices/axis2/trunk/c: include/
modules/xml/om/ modules/xml/parser/libxml2/ modules/xml/soap/ test/xml/om/
test/xml/soap/
Author: nandika
Date: Wed Mar 15 20:06:25 2006
New Revision: 386253
URL: http://svn.apache.org/viewcvs?rev=386253&view=rev
Log:
error hanling improved
Removed:
webservices/axis2/trunk/c/include/axis2_soap_utils.h
webservices/axis2/trunk/c/modules/xml/soap/soap_utils.c
Modified:
webservices/axis2/trunk/c/include/axis2_om_document.h
webservices/axis2/trunk/c/include/axis2_soap_body.h
webservices/axis2/trunk/c/include/axis2_soap_builder.h
webservices/axis2/trunk/c/include/axis2_soap_fault.h
webservices/axis2/trunk/c/include/axis2_soap_fault_code.h
webservices/axis2/trunk/c/include/axis2_soap_fault_node.h
webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h
webservices/axis2/trunk/c/include/axis2_soap_fault_role.h
webservices/axis2/trunk/c/include/axis2_soap_header.h
webservices/axis2/trunk/c/include/axis2_soap_header_block.h
webservices/axis2/trunk/c/modules/xml/om/om_comment.c
webservices/axis2/trunk/c/modules/xml/om/om_document.c
webservices/axis2/trunk/c/modules/xml/om/om_element.c
webservices/axis2/trunk/c/modules/xml/om/om_namespace.c
webservices/axis2/trunk/c/modules/xml/om/om_node.c
webservices/axis2/trunk/c/modules/xml/om/om_output.c
webservices/axis2/trunk/c/modules/xml/om/om_stax_builder.c
webservices/axis2/trunk/c/modules/xml/om/om_text.c
webservices/axis2/trunk/c/modules/xml/parser/libxml2/libxml2_reader_wrapper.c
webservices/axis2/trunk/c/modules/xml/soap/Makefile.am
webservices/axis2/trunk/c/modules/xml/soap/soap11_builder_helper.c
webservices/axis2/trunk/c/modules/xml/soap/soap_body.c
webservices/axis2/trunk/c/modules/xml/soap/soap_builder.c
webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault_code.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault_node.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault_reason.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault_role.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault_sub_code.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault_text.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault_value.c
webservices/axis2/trunk/c/modules/xml/soap/soap_header.c
webservices/axis2/trunk/c/modules/xml/soap/soap_header_block.c
webservices/axis2/trunk/c/test/xml/om/test_om.c
webservices/axis2/trunk/c/test/xml/soap/test_soap.c
Modified: webservices/axis2/trunk/c/include/axis2_om_document.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_om_document.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_om_document.h (original)
+++ webservices/axis2/trunk/c/include/axis2_om_document.h Wed Mar 15 20:06:25 2006
@@ -62,36 +62,16 @@
axis2_status_t (AXIS2_CALL *free) (struct axis2_om_document *document,
axis2_env_t **env);
- /** Free documents xml tree. When this function is called the entire
- * xml structure is freed
- * @param document pointer
- * @param env environment. Must not be null
- */
- axis2_status_t (AXIS2_CALL *free_om_nodes)(struct axis2_om_document *document,
- axis2_env_t **env);
-
- /**
- * Builds the next node if the builder is not finished with input xml stream
+ /** Builds the next node if the builder is not finished with input xml stream
* @param document document whose next node is to be built. cannot be NULL
* @param env Environment. MUST NOT be NULL.
* @return pointer to the next node. NULL on error.
*/
- axis2_om_node_t* (AXIS2_CALL *build_next) (struct axis2_om_document *document,
+
+ axis2_om_node_t* (AXIS2_CALL *build_next) (struct axis2_om_document *document,
axis2_env_t **env);
/**
- * adds the child node to the document. To the back of the children list.
- * child is added as a child of current last child
- * @param document document to add the child. cannot be NULL.
- * @param envi Environment. MUST NOT be NULL.
- * @param child child node to be added. cannot be NULL.
- * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE.
- */
- axis2_status_t (AXIS2_CALL *add_child)(struct axis2_om_document * document,
- axis2_env_t **env,
- axis2_om_node_t * child);
-
- /**
* Gets the root element of the document.
* @param document document to return the root of
* @param env Environment. MUST NOT be NULL.
@@ -165,10 +145,6 @@
#define AXIS2_OM_DOCUMENT_FREE(document,env) \
((document)->ops->free(document,env))
-/** adds a child to document */
-#define AXIS2_OM_DOCUMENT_ADD_CHILD(document,env, child) \
- ((document)->ops->add_child(document,env,child))
-
/** builds next node of document */
#define AXIS2_OM_DOCUMENT_BUILD_NEXT(document,env) \
((document)->ops->build_next(document,env))
@@ -191,9 +167,6 @@
/** serialize opertation */
#define AXIS2_OM_DOCUMENT_SERIALIZE(document, env, om_output) \
((document)->ops->serialize(document, env, om_output))
-
-#define AXIS2_OM_DOCUMENT_FREE_OM_NODES(document, env) \
- ((document)->ops->free_om_nodes(document, env))
/** @} */
Modified: webservices/axis2/trunk/c/include/axis2_soap_body.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_body.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_body.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_body.h Wed Mar 15 20:06:25 2006
@@ -173,6 +173,7 @@
/** free soap_body */
#define AXIS2_SOAP_BODY_FREE(body , env) \
((body)->ops->free(body, env))
+
/** indecate whether soap_body has a fault or not*/
#define AXIS2_SOAP_BODY_HAS_FAULT(body, env) \
((body)->ops->has_fault(body, env))
Modified: webservices/axis2/trunk/c/include/axis2_soap_builder.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_builder.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_builder.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_builder.h Wed Mar 15 20:06:25 2006
@@ -146,18 +146,11 @@
#define AXIS2_SOAP_BUILDER_GET_SOAP_VERSION(builder, env) \
((builder)->ops->get_soap_version(builder, env))
-#define AXIS2_SOAP_BUILDER_SET_ELEMENT_LEVEL(builder, env, ele_level) \
- ((builder)->ops->set_element_level(builder, env, ele_level))
-
#define AXIS2_SOAP_BUILDER_PROCESS_NAMESPACE_DATA(builder, env, om_node, is_soap_element) \
((builder)->ops->process_namespace_data(builder, env, om_node, is_soap_element))
-
/** @} */
#ifdef __cplusplus
}
#endif
-
-
-
#endif /* AXIS2_SOAP_BUILDER_H */
Modified: webservices/axis2/trunk/c/include/axis2_soap_fault.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault.h Wed Mar 15 20:06:25 2006
@@ -47,20 +47,6 @@
struct axis2_soap_body;
struct axis2_soap_builder;
- typedef enum axis2_soap_fault_types
- {
- AXIS2_SOAP_TYPE_NONE = 0,
- AXIS2_SOAP_FAULT,
- AXIS2_SOAP_FAULT_DETAIL,
- AXIS2_SOAP_FAULT_SUB_CODE,
- AXIS2_SOAP_FAULT_CODE,
- AXIS2_SOAP_FAULT_NODE,
- AXIS2_SOAP_FAULT_ROLE,
- AXIS2_SOAP_FAULT_TEXT,
- AXIS2_SOAP_FAULT_VALUE
- }axis2_soap_fault_types_t;
-
-
/**
* @defgroup axis2_soap_fault
* @ingroup axis2_soap
@@ -83,7 +69,12 @@
axis2_status_t (AXIS2_CALL *free_fn)(axis2_soap_fault_t *fault,
axis2_env_t **env);
-
+
+ /**
+ * internal function set a pointer in soap fault struct
+ * to code struct
+ */
+
axis2_status_t (AXIS2_CALL *set_code)(axis2_soap_fault_t *fault,
axis2_env_t **env,
struct axis2_soap_fault_code *code);
@@ -176,8 +167,6 @@
axis2_soap_fault_create_with_parent(axis2_env_t **env,
struct axis2_soap_body *parent);
-
-
AXIS2_DECLARE(axis2_soap_fault_t *)
axis2_soap_fault_create_with_exception(axis2_env_t **env,
struct axis2_soap_body *parent,
Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_code.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_code.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_code.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_code.h Wed Mar 15 20:06:25 2006
@@ -127,7 +127,7 @@
((fault_code)->ops->get_sub_code(fault_code, env))
#define AXIS2_SOAP_FAULT_CODE_GET_VALUE(fault_code , env) \
- ((fault_code)->ops->get_node(fault_code, env))
+ ((fault_code)->ops->get_value(fault_code, env))
#define AXIS2_SOAP_FAULT_CODE_GET_BASE_NODE(fault_code, env) \
((fault_code)->ops->get_base_node(fault_code, env))
Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_node.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_node.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_node.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_node.h Wed Mar 15 20:06:25 2006
@@ -106,7 +106,7 @@
((fault_node)->ops->free_fn(fault_node, env))
#define AXIS2_SOAP_FAULT_NODE_GET_VALUE(fault_node , env) \
- ((fault_node)->ops->get_node(fault_node, env))
+ ((fault_node)->ops->get_value(fault_node, env))
#define AXIS2_SOAP_FAULT_NODE_GET_BASE_NODE(fault_node, env) \
((fault_node)->ops->get_base_node(fault_node, env))
Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_reason.h Wed Mar 15 20:06:25 2006
@@ -57,7 +57,7 @@
(axis2_soap_fault_reason_t *fault_reason,
axis2_env_t **env);
- struct axis2_soap_fault_text* (AXIS2_CALL *get_soap_text)
+ struct axis2_soap_fault_text* (AXIS2_CALL *get_soap_fault_text)
(axis2_soap_fault_reason_t *fault_reason,
axis2_env_t **env);
@@ -111,8 +111,8 @@
((fault_reason)->ops->free_fn(fault_reason, env))
-#define AXIS2_SOAP_FAULT_REASON_GET_SOAP_TEXT(fault_reason , env) \
- ((fault_reason)->ops->get_soap_text(fault_reason, env))
+#define AXIS2_SOAP_FAULT_REASON_GET_SOAP_FAULT_TEXT(fault_reason , env) \
+ ((fault_reason)->ops->get_soap_fault_text(fault_reason, env))
#define AXIS2_SOAP_FAULT_REASON_GET_BASE_NODE(fault_reason, env) \
((fault_reason)->ops->get_base_node(fault_reason, env))
Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_role.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_role.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_role.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_role.h Wed Mar 15 20:06:25 2006
@@ -96,18 +96,8 @@
AXIS2_DECLARE(axis2_soap_fault_role_t *)
axis2_soap_fault_role_create_with_parent(axis2_env_t **env,
- axis2_soap_fault_t *fault,
- axis2_bool_t extract_ns_from_parent);
-
-
-AXIS2_DECLARE(axis2_soap_fault_role_t *)
-axis2_soap11_fault_role_create_with_parent(axis2_env_t **env,
- axis2_soap_fault_t *fault);
-
-AXIS2_DECLARE(axis2_soap_fault_role_t *)
-axis2_soap12_fault_role_create_with_parent(axis2_env_t **env,
axis2_soap_fault_t *fault);
-
+
/******************** Macros **************************************************/
Modified: webservices/axis2/trunk/c/include/axis2_soap_header.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_header.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_header.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_header.h Wed Mar 15 20:06:25 2006
@@ -243,10 +243,7 @@
((header)->ops->set_soap_version(header, env, soap_version))
/** @} */
-
#ifdef __cplusplus
}
#endif
-
-
#endif /* AXIS2_SOAP_HEADER_H */
Modified: webservices/axis2/trunk/c/include/axis2_soap_header_block.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_header_block.h?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_header_block.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_header_block.h Wed Mar 15 20:06:25 2006
@@ -86,8 +86,6 @@
axis2_status_t (AXIS2_CALL *set_processed)
(axis2_soap_header_block_t *header_block,
axis2_env_t **env);
-
-
axis2_char_t* (AXIS2_CALL *get_role)
(axis2_soap_header_block_t *header_block,
axis2_env_t **env);
@@ -105,7 +103,6 @@
axis2_char_t *attr_name,
axis2_char_t *soap_envelope_namespace_uri);
-
/**
* This is only intended to be used by the builder,
*/
@@ -117,7 +114,7 @@
axis2_om_node_t* (AXIS2_CALL *get_base_node)
(axis2_soap_header_block_t *header_block,
axis2_env_t **env);
-
+
int (AXIS2_CALL *get_soap_version)
(axis2_soap_header_block_t *header_block,
axis2_env_t **env);
@@ -126,8 +123,6 @@
(axis2_soap_header_block_t *header_block,
axis2_env_t **env,
int soap_version);
-
-
};
/**
@@ -166,7 +161,7 @@
((header_block)->ops->get_role(header_block, env))
#define AXIS2_SOAP_HEADER_BLOCK_IS_PROCESSED(header_block , env) \
- ((header_block)->ops->is_precessed(header_block, env))
+ ((header_block)->ops->is_processed(header_block, env))
#define AXIS2_SOAP_HEADER_BLOCK_SET_PRECESSED(header_block , env) \
((header_block)->ops->set_processed(header_block, env))
@@ -210,6 +205,4 @@
#ifdef __cplusplus
}
#endif
-
-
- #endif /* AXIS2_SOAP_HEADER_BLOCK_H */
+#endif /* AXIS2_SOAP_HEADER_BLOCK_H */
Modified: webservices/axis2/trunk/c/modules/xml/om/om_comment.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_comment.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_comment.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_comment.c Wed Mar 15 20:06:25 2006
@@ -163,7 +163,12 @@
AXIS2_FREE((*env)->allocator, comment_impl->value);
comment_impl->value = NULL;
}
+
AXIS2_INTF_TO_IMPL(om_comment)->value = (axis2_char_t*)AXIS2_STRDUP(value,env);
+
+ if(!AXIS2_INTF_TO_IMPL(om_comment)->value)
+ return AXIS2_FAILURE;
+
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/modules/xml/om/om_document.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_document.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_document.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_document.c Wed Mar 15 20:06:25 2006
@@ -23,11 +23,6 @@
axis2_om_document_free (axis2_om_document_t * document,
axis2_env_t **env);
-axis2_status_t AXIS2_CALL
-axis2_om_document_add_child (axis2_om_document_t *document,
- axis2_env_t **env,
- axis2_om_node_t * child);
-
axis2_om_node_t * AXIS2_CALL
axis2_om_document_build_next (axis2_om_document_t *document,
axis2_env_t **env);
@@ -54,9 +49,6 @@
axis2_env_t **env,
axis2_om_output_t *om_output);
-axis2_status_t AXIS2_CALL
-axis2_om_document_free_om_nodes(axis2_om_document_t *document,
- axis2_env_t **env);
/********************************* end of function pointers ******************/
typedef struct axis2_om_document_impl_t
@@ -106,11 +98,12 @@
document->root_element = root;
document->first_child = root;
document->last_child = root;
-
-
+ document->xml_version = NULL;
document->char_set_encoding = NULL;
+ document->done = AXIS2_FALSE;
+ document->om_document.ops = NULL;
+
document->char_set_encoding = (axis2_char_t *) AXIS2_STRDUP(CHAR_SET_ENCODING,env);
-
if (!document->char_set_encoding)
{
AXIS2_FREE((*env)->allocator, document);
@@ -118,7 +111,6 @@
return NULL;
}
- document->xml_version = NULL;
document->xml_version = (axis2_char_t *) AXIS2_STRDUP(XML_VERSION,env);
if (!document->xml_version)
{
@@ -129,14 +121,8 @@
return NULL;
}
- document->done = AXIS2_FALSE;
-
-
-
- document->om_document.ops = NULL;
document->om_document.ops = (axis2_om_document_ops_t *) AXIS2_MALLOC ((*env)->allocator,
sizeof(axis2_om_document_ops_t));
-
if (!document->om_document.ops)
{
@@ -148,17 +134,15 @@
}
document->om_document.ops->free = axis2_om_document_free;
- document->om_document.ops->add_child = axis2_om_document_add_child;
document->om_document.ops->build_next = axis2_om_document_build_next;
document->om_document.ops->get_root_element = axis2_om_document_get_root_element;
document->om_document.ops->set_root_element = axis2_om_document_set_root_element;
document->om_document.ops->build_all = axis2_om_document_build_all;
document->om_document.ops->get_builder = axis2_om_document_get_builder;
document->om_document.ops->serialize = axis2_om_document_serialize;
- document->om_document.ops->free_om_nodes = axis2_om_document_free_om_nodes;
- if (builder)
- AXIS2_OM_STAX_BUILDER_SET_DOCUMENT (builder, env, &(document->om_document) );
+ if (NULL != builder)
+ AXIS2_OM_STAX_BUILDER_SET_DOCUMENT (builder, env, &(document->om_document));
return &(document->om_document);
}
@@ -198,32 +182,6 @@
}
-
-axis2_status_t AXIS2_CALL
-axis2_om_document_add_child (axis2_om_document_t *document,
- axis2_env_t **env,
- axis2_om_node_t * child)
-{
- axis2_om_document_impl_t *document_impl = NULL;
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error,child, AXIS2_FAILURE);
-
- document_impl = AXIS2_INTF_TO_IMPL(document);
-
- if (!(document_impl->root_element) && child)
- {
- document_impl->root_element = child;
- return AXIS2_SUCCESS;
- }
-
- if (document_impl->root_element && child)
- {
-
- return AXIS2_OM_NODE_ADD_CHILD (document_impl->last_child, env, child);
- }
- return AXIS2_FAILURE;
-}
-
axis2_om_node_t* AXIS2_CALL
axis2_om_document_build_next (axis2_om_document_t *om_document,
axis2_env_t **env)
@@ -247,7 +205,8 @@
}
return last_child;
}
- else if (AXIS2_OM_NODE_GET_BUILD_STATUS(document->root_element, env))
+ else if ((NULL != document->root_element) &&
+ (AXIS2_OM_NODE_GET_BUILD_STATUS(document->root_element, env) == AXIS2_TRUE))
return NULL; /* Nothing wrong but done with pulling */
last_child = AXIS2_OM_STAX_BUILDER_NEXT (document->builder, env);
@@ -266,7 +225,7 @@
AXIS2_ENV_CHECK(env, NULL);
doc_impl = AXIS2_INTF_TO_IMPL(document);
- if (doc_impl->root_element)
+ if (NULL != doc_impl->root_element)
{
return doc_impl->root_element;
}
@@ -274,7 +233,7 @@
{
node = axis2_om_document_build_next(document, env);
- if (doc_impl->root_element)
+ if (NULL != doc_impl->root_element)
{
return doc_impl->root_element;
@@ -286,6 +245,7 @@
return NULL;
}
}
+ return NULL;
}
axis2_status_t AXIS2_CALL
@@ -301,7 +261,7 @@
document_impl = AXIS2_INTF_TO_IMPL(document);
- if(document_impl->root_element)
+ if(NULL != document_impl->root_element)
{
status = AXIS2_OM_NODE_FREE_TREE(document_impl->root_element, env);
if(status == AXIS2_SUCCESS)
@@ -322,11 +282,28 @@
axis2_om_document_build_all(struct axis2_om_document *document,
axis2_env_t **env)
{
+ axis2_om_document_impl_t *doc_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- do{
- AXIS2_OM_DOCUMENT_BUILD_NEXT(document,env);
- }while(!AXIS2_OM_NODE_GET_BUILD_STATUS(AXIS2_INTF_TO_IMPL(document)->root_element,env));
- return AXIS2_INTF_TO_IMPL(document)->root_element;
+ if(!document)
+ return NULL;
+ doc_impl = AXIS2_INTF_TO_IMPL(document);
+ if(!doc_impl->root_element)
+ {
+ axis2_om_document_get_root_element(document, env);
+ }
+ if(NULL != doc_impl->root_element)
+ {
+ do{
+ axis2_om_node_t *ret_val = NULL;
+ ret_val = AXIS2_OM_DOCUMENT_BUILD_NEXT(document,env);
+ if(!ret_val)
+ return NULL;
+ }while( !AXIS2_OM_NODE_GET_BUILD_STATUS(doc_impl->root_element,env));
+
+ return doc_impl->root_element;
+ }
+ else
+ return NULL;
}
axis2_om_stax_builder_t* AXIS2_CALL
@@ -343,25 +320,22 @@
axis2_om_output_t *om_output)
{
axis2_om_document_impl_t *document_impl = NULL;
+ if(!document)
+ return AXIS2_FAILURE;
+
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
document_impl = AXIS2_INTF_TO_IMPL(document);
if(!(document_impl->root_element))
{
axis2_om_document_get_root_element(document, env);
}
- return AXIS2_OM_NODE_SERIALIZE(document_impl->root_element, env, om_output);
-}
-
-axis2_status_t AXIS2_CALL
-axis2_om_document_free_om_nodes(axis2_om_document_t *document,
- axis2_env_t **env)
-{
- axis2_om_document_impl_t *document_impl = NULL;
- document_impl = AXIS2_INTF_TO_IMPL(document);
- if(document_impl->root_element)
+ if(NULL != document_impl->root_element)
+ {
+ return AXIS2_OM_NODE_SERIALIZE(document_impl->root_element,
+ env, om_output);
+ }
+ else
{
- AXIS2_OM_NODE_FREE_TREE(document_impl->root_element, env);
- return AXIS2_SUCCESS;
+ return AXIS2_FAILURE;
}
- return AXIS2_FAILURE;
}
Modified: webservices/axis2/trunk/c/modules/xml/om/om_element.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_element.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_element.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_element.c Wed Mar 15 20:06:25 2006
@@ -168,8 +168,6 @@
axis2_hash_t *attributes;
/** List of namespaces */
axis2_hash_t *namespaces;
- /** to hold text value if it is a text element */
- axis2_char_t *text_value;
axis2_qname_t *qname;
@@ -227,7 +225,6 @@
element->child_ele_iter = NULL;
element->children_iter = NULL;
element->children_qname_iter = NULL;
- element->text_value = NULL;
element->localname = (axis2_char_t *) AXIS2_STRDUP(localname,env);
if (!element->localname)
@@ -720,7 +717,7 @@
element_impl = AXIS2_INTF_TO_IMPL(om_element);
- if (element_impl->localname)
+ if (NULL != element_impl->localname)
{
AXIS2_FREE ((*env)->allocator,element_impl->localname);
element_impl->localname = NULL;
@@ -729,7 +726,7 @@
{
/* it is the responsibility of the element where the namespace is declared to free it */
}
- if (element_impl->attributes)
+ if (NULL != element_impl->attributes)
{
axis2_hash_index_t *hi;
void *val = NULL;
@@ -749,7 +746,7 @@
element_impl->attributes = NULL;
}
- if (element_impl->namespaces)
+ if (NULL != element_impl->namespaces)
{
axis2_hash_index_t *hi;
void *val = NULL;
@@ -766,34 +763,34 @@
axis2_hash_free (element_impl->namespaces, env);
element_impl->namespaces = NULL;
}
- if(element_impl->qname)
+ if(NULL != element_impl->qname)
{
AXIS2_QNAME_FREE(element_impl->qname, env);
element_impl->qname = NULL;
}
- if(element_impl->children_iter)
+ if(NULL != element_impl->children_iter)
{
AXIS2_OM_CHILDREN_ITERATOR_FREE(element_impl->children_iter, env);
element_impl->children_iter = NULL;
}
- if(element_impl->child_ele_iter)
+ if(NULL != element_impl->child_ele_iter)
{
AXIS2_OM_CHILD_ELEMENT_ITERATOR_FREE(element_impl->child_ele_iter, env);
element_impl->child_ele_iter = NULL;
}
- if(element_impl->children_qname_iter)
+ if(NULL != element_impl->children_qname_iter)
{
AXIS2_OM_CHILDREN_QNAME_ITERATOR_FREE(element_impl->children_qname_iter, env);
element_impl->children_qname_iter = NULL;
}
- if(element_impl->text_value)
+ if(NULL != om_element->ops)
{
- AXIS2_FREE((*env)->allocator, element_impl->text_value);
- element_impl->text_value = NULL;
+ AXIS2_FREE ((*env)->allocator, om_element->ops);
+ om_element->ops = NULL;
}
- AXIS2_FREE ((*env)->allocator, om_element->ops);
AXIS2_FREE ((*env)->allocator, element_impl);
+
return status;
}
@@ -804,6 +801,7 @@
{
int status = AXIS2_SUCCESS;
axis2_om_element_impl_t *ele_impl = NULL;
+
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, om_output, AXIS2_FAILURE);
@@ -1211,10 +1209,7 @@
temp_node = AXIS2_OM_NODE_GET_NEXT_SIBLING(temp_node, env);
}
- element_impl->text_value = dest;
- dest = NULL;
-
- return element_impl->text_value;
+ return dest;
}
axis2_status_t AXIS2_CALL
Modified: webservices/axis2/trunk/c/modules/xml/om/om_namespace.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_namespace.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_namespace.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_namespace.c Wed Mar 15 20:06:25 2006
@@ -74,9 +74,7 @@
/* There should be a uri */
if(!uri)
{
-
- (*env)->error->error_number = AXIS2_ERROR_INVALID_NULL_PARAM;
-
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_NULL_PARAM, AXIS2_FAILURE);
return NULL;
}
@@ -84,19 +82,23 @@
sizeof(axis2_om_namespace_impl_t));
if (!ns)
{
- (*env)->error->error_number = AXIS2_ERROR_NO_MEMORY;
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY , AXIS2_FAILURE);
return NULL;
}
-
+
+
+ ns->om_namespace.ops = NULL;
+ ns->prefix = NULL;
+ ns->uri = NULL;
+
ns->uri = (axis2_char_t *) AXIS2_STRDUP(uri,env);
if (!ns->uri)
{
AXIS2_FREE ((*env)->allocator, ns);
- (*env)->error->error_number = AXIS2_ERROR_NO_MEMORY;
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- ns->prefix = NULL;
if (prefix)
{
ns->prefix = (axis2_char_t *) AXIS2_STRDUP(prefix,env);
@@ -104,13 +106,12 @@
{
AXIS2_FREE ((*env)->allocator, ns);
AXIS2_FREE ((*env)->allocator, ns->uri);
- (*env)->error->error_number = AXIS2_ERROR_NO_MEMORY;
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
}
/* ops */
- ns->om_namespace.ops = NULL;
ns->om_namespace.ops = (axis2_om_namespace_ops_t *) AXIS2_MALLOC (
(*env)->allocator, sizeof(axis2_om_namespace_ops_t));
@@ -119,7 +120,7 @@
AXIS2_FREE ((*env)->allocator, ns);
AXIS2_FREE ((*env)->allocator, ns->uri);
AXIS2_FREE ((*env)->allocator, ns->prefix);
- (*env)->error->error_number = AXIS2_ERROR_NO_MEMORY;
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
@@ -140,23 +141,21 @@
{
axis2_om_namespace_impl_t *ns_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
ns_impl = AXIS2_INTF_TO_IMPL(om_namespace);
-
- if (ns_impl->prefix)
+ if (NULL != ns_impl->prefix)
{
AXIS2_FREE ((*env)->allocator, ns_impl->prefix);
ns_impl->prefix = NULL;
}
- if (ns_impl->uri)
+ if (NULL != ns_impl->uri)
{
AXIS2_FREE ((*env)->allocator, ns_impl->uri);
ns_impl->uri = NULL;
}
- if (om_namespace->ops)
+ if (NULL != om_namespace->ops)
{
AXIS2_FREE ((*env)->allocator, om_namespace->ops);
om_namespace->ops = NULL;
@@ -178,13 +177,13 @@
int uris_differ = 0;
int prefixes_differ = 0;
- AXIS2_ENV_CHECK(env, AXIS2_CRTICAL_FAILURE);
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, om_namespace, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, om_namespace1, AXIS2_FAILURE);
ns1 = AXIS2_INTF_TO_IMPL(om_namespace);
ns2 = AXIS2_INTF_TO_IMPL(om_namespace1);
-
-
if (!ns1 || !ns2)
return AXIS2_FALSE;
@@ -209,23 +208,19 @@
{
int status = AXIS2_SUCCESS;
axis2_om_namespace_impl_t *ns_impl = NULL;
- AXIS2_ENV_CHECK(env,AXIS2_CRTICAL_FAILURE);
- if (!om_namespace || !om_output)
- {
-
- AXIS2_ERROR_SET_ERROR_NUMBER((*env)->error, AXIS2_ERROR_INVALID_NULL_PARAM);
- AXIS2_ERROR_SET_STATUS_CODE((*env)->error, AXIS2_FAILURE);
-
+ if(!om_namespace)
return AXIS2_FAILURE;
- }
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, om_output, AXIS2_FAILURE);
+
ns_impl = AXIS2_INTF_TO_IMPL(om_namespace);
if (ns_impl->uri && ns_impl->prefix)
- status = axis2_om_output_write ( om_output, env, AXIS2_OM_NAMESPACE,
+ status = axis2_om_output_write ( om_output, env, AXIS2_OM_NAMESPACE,
2, ns_impl->prefix,
ns_impl->uri);
return status;
-
}
axis2_char_t* AXIS2_CALL
@@ -244,5 +239,3 @@
AXIS2_ENV_CHECK(env, NULL);
return AXIS2_INTF_TO_IMPL(om_namespace)->prefix;
}
-
-
Modified: webservices/axis2/trunk/c/modules/xml/om/om_node.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_node.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_node.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_node.c Wed Mar 15 20:06:25 2006
@@ -211,7 +211,7 @@
node_impl = AXIS2_INTF_TO_IMPL(om_node);
- if (node_impl->first_child)
+ if (NULL != node_impl->first_child)
{
while (NULL != (node_impl->first_child))
{
@@ -227,29 +227,41 @@
switch (node_impl->node_type)
{
case AXIS2_OM_ELEMENT:
- AXIS2_OM_ELEMENT_FREE((axis2_om_element_t*)(node_impl->data_element), env);
- break;
+ if(NULL != node_impl->data_element)
+ AXIS2_OM_ELEMENT_FREE((axis2_om_element_t*)(node_impl->data_element), env);
+
+ break;
case AXIS2_OM_COMMENT:
- AXIS2_OM_COMMENT_FREE((axis2_om_comment_t*)(node_impl->data_element), env);
+ if(NULL != node_impl->data_element)
+ AXIS2_OM_COMMENT_FREE((axis2_om_comment_t*)(node_impl->data_element), env);
+
break;
case AXIS2_OM_DOCTYPE:
/*AXIS2_OM_DOCTYPE_FREE((axis2_om_doctype_t*)(node_impl->data_element), env);*/
break;
case AXIS2_OM_PROCESSING_INSTRUCTION:
- AXIS2_OM_PROCESSING_INSTRUCTION_FREE(
- (axis2_om_processing_instruction_t*)(node_impl->data_element), env);
+ if(NULL != node_impl->data_element)
+ AXIS2_OM_PROCESSING_INSTRUCTION_FREE(
+ (axis2_om_processing_instruction_t*)(node_impl->data_element), env);
+
break;
case AXIS2_OM_TEXT:
- AXIS2_OM_TEXT_FREE((axis2_om_text_t*)(node_impl->data_element),env);
+ if(NULL != node_impl->data_element)
+ AXIS2_OM_TEXT_FREE((axis2_om_text_t*)(node_impl->data_element),env);
+
break;
default:
break;
}
+ if(NULL != om_node->ops)
+ {
+ AXIS2_FREE ((*env)->allocator, om_node->ops);
+ om_node->ops = NULL;
+ }
- AXIS2_FREE ((*env)->allocator, om_node->ops);
- AXIS2_FREE ((*env)->allocator, AXIS2_INTF_TO_IMPL(om_node));
+ AXIS2_FREE ((*env)->allocator, node_impl);
return AXIS2_SUCCESS;
}
@@ -347,30 +359,30 @@
axis2_env_t **env,
axis2_om_node_t * parent)
{
-
+ axis2_om_node_impl_t *node_impl = NULL;
AXIS2_ENV_CHECK(env,AXIS2_FAILURE);
+ if(!om_node)
+ return AXIS2_FAILURE;
+
AXIS2_PARAM_CHECK((*env)->error, parent, AXIS2_FAILURE);
- if(!parent)
- {
-
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_NULL_PARAM,
- AXIS2_FAILURE);
- return AXIS2_FAILURE;
- }
+ node_impl = AXIS2_INTF_TO_IMPL(om_node);
+
- if (parent == AXIS2_INTF_TO_IMPL(om_node)->parent)
+ if (parent == node_impl->parent)
{ /* same parent already exist */
return AXIS2_SUCCESS;
}
/* if a new parent is assigned in place of existing
* one first the node should be detached
*/
- if((AXIS2_INTF_TO_IMPL(om_node)->parent))
+ if(NULL != node_impl->parent)
{
- axis2_om_node_detach(om_node,env);
+ om_node = axis2_om_node_detach(om_node, env);
}
- AXIS2_INTF_TO_IMPL(om_node)->parent = parent;
+
+ node_impl->parent = parent;
+
return AXIS2_SUCCESS;
}
@@ -387,16 +399,19 @@
axis2_om_node_t * node_to_insert)
{
axis2_om_node_t *next_sib = NULL;
+
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
AXIS2_PARAM_CHECK((*env)->error, node_to_insert, AXIS2_FAILURE);
AXIS2_INTF_TO_IMPL(node_to_insert)->parent =
AXIS2_INTF_TO_IMPL(om_node)->parent;
+
AXIS2_INTF_TO_IMPL(node_to_insert)->prev_sibling = om_node;
next_sib = AXIS2_INTF_TO_IMPL(om_node)->next_sibling;
- if(next_sib)
+ if(NULL != next_sib)
{
AXIS2_INTF_TO_IMPL(next_sib)->prev_sibling = node_to_insert;
}
@@ -450,49 +465,76 @@
{
int status = AXIS2_SUCCESS;
+ axis2_om_node_impl_t *node_impl = NULL;
+
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+ if(!om_node)
+ return AXIS2_SUCCESS;
+
AXIS2_PARAM_CHECK((*env)->error,om_output,AXIS2_FAILURE);
+ node_impl = AXIS2_INTF_TO_IMPL(om_node);
+
- switch (AXIS2_INTF_TO_IMPL(om_node)->node_type)
+ switch (node_impl->node_type)
{
- case AXIS2_OM_ELEMENT:
- status = AXIS2_OM_ELEMENT_SERIALIZE_START_PART(
- (axis2_om_element_t *)(AXIS2_INTF_TO_IMPL(om_node)->data_element),
- env,
- om_output);
-
+ case AXIS2_OM_ELEMENT:
+ if(NULL != node_impl->data_element)
+ {
+ status = AXIS2_OM_ELEMENT_SERIALIZE_START_PART(
+ (axis2_om_element_t *)(node_impl->data_element),
+ env, om_output);
+ }
if (status != AXIS2_SUCCESS)
return status;
+
break;
+
case AXIS2_OM_TEXT:
- status = AXIS2_OM_TEXT_SERIALIZE (
- (axis2_om_text_t*)(AXIS2_INTF_TO_IMPL(om_node)->data_element),
+ if(NULL != node_impl->data_element)
+ {
+ status = AXIS2_OM_TEXT_SERIALIZE (
+ (axis2_om_text_t*)(node_impl->data_element),
env, om_output);
+ }
if(status != AXIS2_SUCCESS)
return status;
+
break;
+
case AXIS2_OM_COMMENT:
- status = AXIS2_OM_COMMENT_SERIALIZE(
- (axis2_om_comment_t*)(AXIS2_INTF_TO_IMPL(om_node)->data_element),
- env, om_output);
+ if(NULL != node_impl->data_element)
+ {
+ status = AXIS2_OM_COMMENT_SERIALIZE(
+ (axis2_om_comment_t*)(node_impl->data_element),
+ env, om_output);
+ }
if( status != AXIS2_SUCCESS)
return status;
break;
case AXIS2_OM_DOCTYPE:
- status = AXIS2_OM_DOCTYPE_SERIALIZE(
- (axis2_om_doctype_t*)(AXIS2_INTF_TO_IMPL(om_node)->data_element),
- env, om_output);
+ if(NULL != node_impl->data_element)
+ {
+ status = AXIS2_OM_DOCTYPE_SERIALIZE(
+ (axis2_om_doctype_t*)(node_impl->data_element),
+ env, om_output);
+ }
if( status != AXIS2_SUCCESS)
return status;
+
break;
case AXIS2_OM_PROCESSING_INSTRUCTION:
- status = AXIS2_OM_PROCESSING_INSTRUCTION_SERIALIZE(
- (axis2_om_processing_instruction_t*)
- (AXIS2_INTF_TO_IMPL(om_node)->data_element), env, om_output);
+ if(NULL != node_impl->data_element)
+ {
+ status = AXIS2_OM_PROCESSING_INSTRUCTION_SERIALIZE(
+ (axis2_om_processing_instruction_t*)(node_impl->data_element),
+ env, om_output);
+ }
+
if( status != AXIS2_SUCCESS)
return status;
break;
@@ -502,46 +544,50 @@
}
/* serialize children of this node */
- if(AXIS2_INTF_TO_IMPL(om_node)->first_child)
- status = axis2_om_node_serialize(AXIS2_INTF_TO_IMPL(om_node)->first_child, env, om_output);
+ if(NULL != node_impl->first_child)
+ status = axis2_om_node_serialize(node_impl->first_child, env, om_output);
- switch (AXIS2_INTF_TO_IMPL(om_node)->node_type)
+ switch (node_impl->node_type)
{
case AXIS2_OM_ELEMENT:
- status = AXIS2_OM_ELEMENT_SERIALIZE_END_PART ((axis2_om_element_t *)
- (AXIS2_INTF_TO_IMPL(om_node)->data_element),
- env, om_output);
+ if(NULL != node_impl->data_element)
+ {
+ status = AXIS2_OM_ELEMENT_SERIALIZE_END_PART (
+ (axis2_om_element_t *)(node_impl->data_element),
+ env, om_output);
+ }
if (status != AXIS2_SUCCESS)
return status;
+
break;
default:
break;
}
/* serialize next sibling */
- if(AXIS2_INTF_TO_IMPL(om_node)->next_sibling)
- status = axis2_om_node_serialize(AXIS2_INTF_TO_IMPL(om_node)->next_sibling, env, om_output);
-
+ if(NULL != node_impl->next_sibling)
+ status = axis2_om_node_serialize(node_impl->next_sibling, env, om_output);
return status;
-
}
axis2_om_node_t* AXIS2_CALL
axis2_om_node_get_parent(axis2_om_node_t *om_node,
axis2_env_t **env)
{
-
AXIS2_ENV_CHECK(env, NULL);
return AXIS2_INTF_TO_IMPL(om_node)->parent;
-
}
+
axis2_om_node_t* AXIS2_CALL
axis2_om_node_get_first_child(axis2_om_node_t *om_node,
axis2_env_t **env)
{
axis2_om_node_impl_t *om_node_impl = NULL;
int token = 0;
+ if(! om_node)
+ return NULL;
+
AXIS2_ENV_CHECK(env, NULL);
om_node_impl = AXIS2_INTF_TO_IMPL(om_node);
/**********************************************************/
@@ -550,7 +596,7 @@
{
token = AXIS2_OM_STAX_BUILDER_NEXT_WITH_TOKEN(om_node_impl->builder, env);
if(token == -1)
- break;
+ return NULL;
}
/**********************************************************/
return om_node_impl->first_child;
@@ -579,6 +625,10 @@
{
axis2_om_node_impl_t *om_node_impl = NULL;
int token = 0;
+
+ if(!om_node)
+ return NULL;
+
AXIS2_ENV_CHECK(env, NULL);
om_node_impl = AXIS2_INTF_TO_IMPL(om_node);
/*****************************************************/
@@ -587,7 +637,7 @@
{
token = AXIS2_OM_STAX_BUILDER_NEXT_WITH_TOKEN(om_node_impl->builder, env);
if(token == -1)
- break;
+ return NULL;
}
/*******************************************************/
return om_node_impl->next_sibling;
@@ -628,9 +678,11 @@
AXIS2_ENV_CHECK(env, NULL);
om_node_impl = AXIS2_INTF_TO_IMPL(om_node);
+
builder = om_node_impl->builder;
if(!builder)
return NULL;
+
return AXIS2_OM_STAX_BUILDER_NEXT(om_node_impl->builder, env);
}
Modified: webservices/axis2/trunk/c/modules/xml/om/om_output.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_output.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_output.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_output.c Wed Mar 15 20:06:25 2006
@@ -196,23 +196,25 @@
{
axis2_om_output_impl_t *om_output_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
om_output_impl = AXIS2_INTF_TO_IMPL(om_output);
- if(om_output_impl->xml_version)
+
+ if(NULL != om_output_impl->xml_version)
{
AXIS2_FREE((*env)->allocator, om_output_impl->xml_version);
om_output_impl->xml_version = NULL;
}
- if(om_output_impl->char_set_encoding)
+ if(NULL != om_output_impl->char_set_encoding)
{
AXIS2_FREE((*env)->allocator, om_output_impl->char_set_encoding);
om_output_impl->char_set_encoding = NULL;
}
- if(om_output_impl->xml_writer)
+ if(NULL != om_output_impl->xml_writer)
{
AXIS2_XML_WRITER_FREE(om_output_impl->xml_writer, env);
om_output_impl->xml_writer = NULL;
}
- if(om_output->ops)
+ if(NULL != om_output->ops)
{
AXIS2_FREE((*env)->allocator, om_output->ops);
om_output->ops = NULL;
@@ -247,7 +249,6 @@
axis2_bool_t ignore_xml_dec)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, ignore_xml_dec, AXIS2_FAILURE);
AXIS2_INTF_TO_IMPL(om_output)->ignore_xml_declaration = ignore_xml_dec;
return AXIS2_SUCCESS;
}
@@ -258,7 +259,6 @@
axis2_bool_t soap11)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, soap11, AXIS2_FAILURE);
AXIS2_INTF_TO_IMPL(om_output)->is_soap11 = soap11;
return AXIS2_SUCCESS;
}
@@ -268,11 +268,23 @@
axis2_env_t **env,
axis2_char_t *xml_version)
{
+ axis2_om_output_impl_t *output_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
AXIS2_PARAM_CHECK((*env)->error, xml_version, AXIS2_FAILURE);
- if(AXIS2_INTF_TO_IMPL(om_output)->xml_version)
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(om_output)->xml_version);
- AXIS2_INTF_TO_IMPL(om_output)->xml_version = xml_version;
+ output_impl = AXIS2_INTF_TO_IMPL(om_output);
+
+ if(NULL != output_impl->xml_version)
+ {
+ AXIS2_FREE((*env)->allocator, output_impl->xml_version);
+ output_impl->xml_version = NULL;
+ }
+
+ output_impl->xml_version = AXIS2_STRDUP(xml_version, env);
+ if(!output_impl->xml_version)
+ {
+ return AXIS2_FAILURE;
+ }
return AXIS2_SUCCESS;
}
@@ -290,12 +302,22 @@
axis2_env_t **env,
axis2_char_t *char_set_encoding)
{
-
+ axis2_om_output_impl_t *output_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, char_set_encoding, AXIS2_FAILURE);
- AXIS2_INTF_TO_IMPL(om_output)->char_set_encoding = char_set_encoding;
- if(AXIS2_INTF_TO_IMPL(om_output)->xml_version)
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(om_output)->xml_version);
+ output_impl = AXIS2_INTF_TO_IMPL(om_output);
+
+ if(NULL != output_impl->char_set_encoding)
+ {
+ AXIS2_FREE((*env)->allocator, output_impl->char_set_encoding);
+ output_impl->char_set_encoding = NULL;
+ }
+
+ output_impl->char_set_encoding = AXIS2_STRDUP(char_set_encoding, env);
+ if(!output_impl->char_set_encoding)
+ {
+ return AXIS2_FAILURE;
+ }
return AXIS2_SUCCESS;
}
@@ -315,7 +337,6 @@
axis2_bool_t optimize)
{
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, optimize, AXIS2_FAILURE);
AXIS2_INTF_TO_IMPL(om_output)->do_optimize = optimize;
return AXIS2_SUCCESS;
}
@@ -484,10 +505,10 @@
axis2_om_output_impl_t *output_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
output_impl = AXIS2_INTF_TO_IMPL(om_output);
- AXIS2_XML_WRITER_WRITE_START_DOCUMENT_WITH_VERSION_ENCODING(
+ return AXIS2_XML_WRITER_WRITE_START_DOCUMENT_WITH_VERSION_ENCODING(
output_impl->xml_writer,
env,
output_impl->xml_version,
output_impl->char_set_encoding);
- return AXIS2_SUCCESS;
+
}
Modified: webservices/axis2/trunk/c/modules/xml/om/om_stax_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_stax_builder.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_stax_builder.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_stax_builder.c Wed Mar 15 20:06:25 2006
@@ -177,6 +177,7 @@
builder_impl->parser,env);
for (i=1; i <= attribute_count ; i++)
{
+ axis2_om_element_t *temp_ele = NULL;
uri = AXIS2_XML_READER_GET_ATTRIBUTE_NAMESPACE_BY_NUMBER(
builder_impl->parser, env, i);
@@ -207,11 +208,18 @@
attr_value = AXIS2_XML_READER_GET_ATTRIBUTE_VALUE_BY_NUMBER(
builder_impl->parser, env, i);
- attribute = axis2_om_attribute_create (env, attr_name, attr_value, ns);
-
- status = AXIS2_OM_ELEMENT_ADD_ATTRIBUTE (
- (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(element_node,env),
- env, attribute, element_node);
+ if(NULL != attr_name)
+ {
+ attribute = axis2_om_attribute_create (env, attr_name, attr_value, ns);
+ if(!attribute)
+ return AXIS2_FAILURE;
+
+ temp_ele = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(element_node,env);
+ if(NULL != temp_ele)
+ {
+ status = AXIS2_OM_ELEMENT_ADD_ATTRIBUTE (temp_ele, env, attribute, element_node);
+ }
+ }
if(uri)
AXIS2_XML_READER_XML_FREE(builder_impl->parser, env, uri);
if(prefix)
@@ -360,7 +368,7 @@
om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
om_ns = axis2_om_namespace_create ( env, temp_ns_uri, NULL );
- if(!om_ns)
+ if(!om_ns || !om_ele)
return AXIS2_FAILURE;
status = AXIS2_OM_ELEMENT_DECLARE_NAMESPACE( om_ele, env, node, om_ns);
@@ -382,7 +390,7 @@
om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
om_ns = axis2_om_namespace_create ( env, temp_ns_uri, temp_ns_prefix );
- if(!om_ns)
+ if(!om_ns || !om_ele)
return AXIS2_FAILURE;
status = AXIS2_OM_ELEMENT_DECLARE_NAMESPACE(om_ele, env, node, om_ns);
@@ -411,7 +419,8 @@
{
axis2_om_element_t *om_ele = NULL;
om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, env);
- AXIS2_OM_ELEMENT_SET_NAMESPACE (om_ele, env, om_ns, node);
+ if(om_ele)
+ AXIS2_OM_ELEMENT_SET_NAMESPACE (om_ele, env, om_ns, node);
}
else
{
@@ -420,7 +429,9 @@
return AXIS2_FAILURE;
}
}
- AXIS2_XML_READER_XML_FREE(builder->parser, env, temp_prefix);
+ if(temp_prefix)
+ AXIS2_XML_READER_XML_FREE(builder->parser, env, temp_prefix);
+
return status;
}
@@ -429,6 +440,7 @@
axis2_env_t **env)
{
axis2_om_node_t *element_node = NULL;
+ axis2_om_element_t *om_ele = NULL;
axis2_om_stax_builder_impl_t *builder_impl = NULL;
axis2_char_t *temp_localname = NULL;
@@ -449,7 +461,10 @@
if (!(builder_impl->lastnode))
{
- axis2_om_element_create (env , NULL, temp_localname, NULL, &element_node);
+ om_ele = axis2_om_element_create (env , NULL, temp_localname, NULL, &element_node);
+ if(!om_ele)
+ return NULL;
+
builder_impl->root_node = element_node;
axis2_om_node_set_builder(element_node, env, om_stax_builder);
@@ -467,6 +482,9 @@
om_ele = axis2_om_element_create (env,
AXIS2_OM_NODE_GET_PARENT(builder_impl->lastnode, env),
temp_localname, NULL, &element_node);
+ if(!om_ele)
+ return NULL;
+
if(element_node)
{
axis2_om_node_set_next_sibling(builder_impl->lastnode, env, element_node);
@@ -488,8 +506,8 @@
axis2_om_node_set_builder(element_node, env, om_stax_builder);
}
}
-
- AXIS2_XML_READER_XML_FREE(builder_impl->parser , env, temp_localname);
+ if(temp_localname)
+ AXIS2_XML_READER_XML_FREE(builder_impl->parser , env, temp_localname);
/** order of processing namespaces first is important */
axis2_om_stax_builder_process_namespaces ( om_stax_builder, env, element_node, 0);
@@ -529,13 +547,15 @@
axis2_om_comment_create (env,
AXIS2_OM_NODE_GET_PARENT(builder_impl->lastnode, env),
comment_value , &comment_node);
- axis2_om_node_set_next_sibling(builder_impl->lastnode, env, comment_node);
+
+ axis2_om_node_set_next_sibling(builder_impl->lastnode, env, comment_node);
axis2_om_node_set_previous_sibling(comment_node , env, builder_impl->lastnode);
}
else
{
axis2_om_comment_create( env, builder_impl->lastnode,
comment_value ,&comment_node);
+
axis2_om_node_set_first_child(builder_impl->lastnode , env, comment_node);
axis2_om_node_set_parent(comment_node , env, builder_impl->lastnode);
}
@@ -621,9 +641,11 @@
axis2_om_node_set_first_child(builder_impl->lastnode , env, pi_node);
axis2_om_node_set_parent(pi_node , env, builder_impl->lastnode);
}
+ if(target)
+ AXIS2_XML_READER_XML_FREE(builder_impl->parser , env, target);
+ if(value)
+ AXIS2_XML_READER_XML_FREE(builder_impl->parser , env, value);
- AXIS2_XML_READER_XML_FREE(builder_impl->parser , env, target);
- AXIS2_XML_READER_XML_FREE(builder_impl->parser , env, value);
builder_impl->lastnode = pi_node;
return pi_node;
}
@@ -677,12 +699,14 @@
AXIS2_ENV_CHECK(env, NULL);
builder_impl = AXIS2_INTF_TO_IMPL(om_stax_builder);
-
+ if(!builder_impl->parser)
+ return NULL;
do
{
if (builder_impl->done)
{
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL, AXIS2_FAILURE);
+ AXIS2_ERROR_SET((*env)->error,
+ AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL, AXIS2_FAILURE);
return NULL;
}
@@ -731,7 +755,7 @@
case AXIS2_XML_READER_COMMENT:
- node = axis2_om_stax_builder_create_om_comment(om_stax_builder, env);
+ node = axis2_om_stax_builder_create_om_comment(om_stax_builder, env);
axis2_om_stax_builder_end_element (om_stax_builder, env);
break;
@@ -906,7 +930,12 @@
{
int token = 0;
+ void *val = NULL;
+
axis2_om_stax_builder_impl_t *builder_impl = NULL;
+
+ if(!builder) return -1;
+
builder_impl = AXIS2_INTF_TO_IMPL(builder);
if (builder_impl->done)
@@ -914,7 +943,11 @@
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL, AXIS2_FAILURE);
return -1;
}
+
+ if(!builder_impl->parser) return -1;
+
token = AXIS2_XML_READER_NEXT (builder_impl->parser, env);
+
if(token == -1)
{
builder_impl->done = AXIS2_TRUE;
@@ -932,13 +965,19 @@
break;
case AXIS2_XML_READER_START_ELEMENT:
- axis2_om_stax_builder_create_om_element (
+ val = axis2_om_stax_builder_create_om_element (
builder, env);
+ if(!val)
+ return -1;
+
break;
case AXIS2_XML_READER_EMPTY_ELEMENT:
- axis2_om_stax_builder_create_om_element (
+ val = axis2_om_stax_builder_create_om_element (
builder, env);
+ if(!val)
+ return -1;
+
case AXIS2_XML_READER_END_ELEMENT:
axis2_om_stax_builder_end_element (builder, env);
break;
@@ -949,20 +988,26 @@
break;
case AXIS2_XML_READER_CHARACTER:
- axis2_om_stax_builder_create_om_text(builder, env);
+ val = axis2_om_stax_builder_create_om_text(builder, env);
+ if(!val)
+ return -1;
break;
case AXIS2_XML_READER_ENTITY_REFERENCE:
break;
case AXIS2_XML_READER_COMMENT:
- axis2_om_stax_builder_create_om_comment(builder, env);
+ val = axis2_om_stax_builder_create_om_comment(builder, env);
+ if(!val)
+ return -1;
axis2_om_stax_builder_end_element (builder, env);
break;
case AXIS2_XML_READER_PROCESSING_INSTRUCTION:
- axis2_om_stax_builder_create_om_processing_instruction(
+ val = axis2_om_stax_builder_create_om_processing_instruction(
builder , env );
+ if(!val)
+ return -1;
axis2_om_stax_builder_end_element (builder, env);
break;
Modified: webservices/axis2/trunk/c/modules/xml/om/om_text.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_text.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_text.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_text.c Wed Mar 15 20:06:25 2006
@@ -133,16 +133,22 @@
axis2_om_text_free (axis2_om_text_t * om_text,
axis2_env_t **env)
{
+ axis2_om_text_impl_t *text_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- if (AXIS2_INTF_TO_IMPL(om_text)->value)
- AXIS2_FREE ((*env)->allocator, AXIS2_INTF_TO_IMPL(om_text)->value);
-
- if (om_text->ops)
+ text_impl = AXIS2_INTF_TO_IMPL(om_text);
+ if(NULL != text_impl->value)
+ {
+ AXIS2_FREE ((*env)->allocator, text_impl->value);
+ text_impl->value = NULL;
+ }
+ if(NULL != om_text->ops)
+ {
AXIS2_FREE ((*env)->allocator, om_text->ops);
+ om_text->ops = NULL;
+ }
- if (om_text)
- AXIS2_FREE ((*env)->allocator, AXIS2_INTF_TO_IMPL(om_text));
+ AXIS2_FREE ((*env)->allocator, text_impl);
return AXIS2_SUCCESS;
}
@@ -175,10 +181,25 @@
axis2_env_t **env,
const axis2_char_t *value)
{
+ axis2_om_text_impl_t *text_impl = NULL;
+
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error , om_text, AXIS2_FAILURE);
- if(AXIS2_INTF_TO_IMPL(om_text)->value)
- AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(om_text)->value);
- AXIS2_INTF_TO_IMPL(om_text)->value = (axis2_char_t*)AXIS2_STRDUP(value,env);
+
+ text_impl = AXIS2_INTF_TO_IMPL(om_text);
+ if(NULL != text_impl->value)
+ {
+ AXIS2_FREE((*env)->allocator, text_impl->value);
+ text_impl->value = NULL;
+ }
+
+ text_impl->value = (axis2_char_t*)AXIS2_STRDUP(value, env);
+ if(!text_impl->value)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY,
+ AXIS2_FAILURE);
+
+ return AXIS2_FAILURE;
+ }
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/modules/xml/parser/libxml2/libxml2_reader_wrapper.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/parser/libxml2/libxml2_reader_wrapper.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/parser/libxml2/libxml2_reader_wrapper.c (original)
+++ webservices/axis2/trunk/c/modules/xml/parser/libxml2/libxml2_reader_wrapper.c Wed Mar 15 20:06:25 2006
@@ -307,8 +307,12 @@
{
axis2_libxml2_reader_wrapper_impl_t *wrapper_impl = NULL;
+
AXIS2_ENV_CHECK( env, NULL);
+ if(!read_input_callback)
+ return NULL;
+
wrapper_impl = (axis2_libxml2_reader_wrapper_impl_t*)AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_libxml2_reader_wrapper_impl_t));
if(!wrapper_impl)
@@ -469,7 +473,10 @@
xmlCleanupParser();
}
if(parser->ops)
+ {
AXIS2_FREE((*env)->allocator, parser->ops);
+ parser->ops = NULL;
+ }
AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(parser));
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/modules/xml/soap/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/Makefile.am?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/Makefile.am Wed Mar 15 20:06:25 2006
@@ -10,7 +10,6 @@
soap_fault_value.c \
soap_header_block.c \
soap_header.c \
- soap_utils.c \
soap_body.c \
soap_envelope.c \
soap_builder.c \
Modified: webservices/axis2/trunk/c/modules/xml/soap/soap11_builder_helper.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap11_builder_helper.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap11_builder_helper.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap11_builder_helper.c Wed Mar 15 20:06:25 2006
@@ -28,10 +28,8 @@
#include <axis2_om_stax_builder_internal.h>
#include <axis2_om_node_internal.h>
-
-
- typedef struct axis2_soap11_builder_helper_impl_t
- {
+typedef struct axis2_soap11_builder_helper_impl_t
+{
axis2_soap11_builder_helper_t builder_helper;
axis2_soap_builder_t *soap_builder;
@@ -44,10 +42,9 @@
axis2_om_node_t *last_processed_node;
-
}axis2_soap11_builder_helper_impl_t;
- /********************* Macro *************************************************/
+/********************** Macro *************************************************/
#define AXIS2_INTF_TO_IMPL(builder_helper) \
((axis2_soap11_builder_helper_impl_t*)builder_helper)
@@ -96,6 +93,7 @@
builder_helper_impl->builder_helper.ops = (axis2_soap11_builder_helper_ops_t*) AXIS2_MALLOC(
(*env)->allocator, sizeof(axis2_soap11_builder_helper_ops_t));
+
if(!(builder_helper_impl->builder_helper.ops))
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
@@ -147,16 +145,34 @@
axis2_soap_fault_t *soap_fault = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, om_element_node, AXIS2_FAILURE);
builder_helper_impl = AXIS2_INTF_TO_IMPL(builder_helper);
om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(om_element_node, env);
- ele_localname = AXIS2_OM_ELEMENT_GET_LOCALNAME(om_ele, env);
+ ele_localname = AXIS2_OM_ELEMENT_GET_LOCALNAME(om_ele, env);
+ if(!ele_localname)
+ {
+ return AXIS2_FAILURE;
+ }
+
soap_envelope = AXIS2_SOAP_BUILDER_GET_SOAP_ENVELOPE(builder_helper_impl->soap_builder, env);
- if(soap_envelope)
+
+ if(!soap_envelope)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ soap_body = AXIS2_SOAP_ENVELOPE_GET_BODY(soap_envelope, env);
+ if(!soap_body)
{
- soap_body = AXIS2_SOAP_ENVELOPE_GET_BODY(soap_envelope, env);
- soap_fault = AXIS2_SOAP_BODY_GET_FAULT(soap_body, env);
+ return AXIS2_FAILURE;
+ }
+
+ soap_fault = AXIS2_SOAP_BODY_GET_FAULT(soap_body, env);
+ if(!soap_fault)
+ {
+ return AXIS2_FAILURE;
}
@@ -167,17 +183,22 @@
axis2_om_node_t *fault_value_node = NULL;
axis2_om_element_t *fault_value_ele = NULL;
-
-
if(AXIS2_STRCMP(ele_localname, AXIS2_SOAP11_SOAP_FAULT_CODE_LOCAL_NAME) == 0)
{
+ axis2_status_t status = AXIS2_SUCCESS;
+
if(builder_helper_impl->fault_string_present)
{
AXIS2_SOAP_BUILDER_SET_BOOL_PROCESSING_MANDATORY_FAULT_ELEMENTS(
builder_helper_impl->soap_builder, env, AXIS2_FALSE);
}
+
fault_code = axis2_soap_fault_code_create(env);
+ if(!fault_code)
+ return AXIS2_FAILURE;
+
AXIS2_SOAP_FAULT_CODE_SET_BASE_NODE(fault_code, env, om_element_node);
+
AXIS2_SOAP_FAULT_SET_CODE(soap_fault, env, fault_code);
AXIS2_SOAP_FAULT_CODE_SET_BUILDER(fault_code, env, builder_helper_impl->soap_builder);
@@ -185,15 +206,24 @@
AXIS2_OM_ELEMENT_SET_LOCALNAME(om_ele, env, AXIS2_SOAP12_SOAP_FAULT_CODE_LOCAL_NAME);
fault_value = axis2_soap_fault_value_create_with_code(env, fault_code);
+ if(!fault_value)
+ return AXIS2_FAILURE;
fault_value_node = AXIS2_SOAP_FAULT_VALUE_GET_BASE_NODE(fault_value, env);
+ if(!fault_value_node)
+ return AXIS2_FAILURE;
+
fault_value_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(
fault_value_node, env);
axis2_om_stax_builder_set_lastnode(builder_helper_impl->om_builder,
env, fault_value_node);
- axis2_soap11_builder_helper_process_text(builder_helper, env);
+ status = axis2_soap11_builder_helper_process_text(builder_helper, env);
+ if(status == AXIS2_FAILURE)
+ {
+ return AXIS2_FAILURE;
+ }
axis2_om_stax_builder_set_lastnode(builder_helper_impl->om_builder,
env, om_element_node);
axis2_om_node_set_build_status(om_element_node, env, AXIS2_TRUE);
@@ -208,26 +238,38 @@
axis2_soap_fault_reason_t *fault_reason = NULL;
axis2_soap_fault_text_t *fault_text = NULL;
axis2_om_node_t *fault_text_node = NULL;
+ int status = AXIS2_SUCCESS;
if(builder_helper_impl->fault_code_present)
{
AXIS2_SOAP_BUILDER_SET_BOOL_PROCESSING_MANDATORY_FAULT_ELEMENTS(
builder_helper_impl->soap_builder, env, AXIS2_FALSE);
}
+
AXIS2_OM_ELEMENT_SET_LOCALNAME(om_ele, env, AXIS2_SOAP12_SOAP_FAULT_REASON_LOCAL_NAME);
- fault_reason = axis2_soap_fault_reason_create(env);
+ fault_reason = axis2_soap_fault_reason_create(env);
+ if(!fault_reason)
+ return AXIS2_FAILURE;
+
AXIS2_SOAP_FAULT_REASON_SET_BASE_NODE(fault_reason, env, om_element_node);
AXIS2_SOAP_FAULT_SET_REASON(soap_fault, env, fault_reason);
fault_text = axis2_soap_fault_text_create_with_parent(env, fault_reason);
-
+ if(!fault_text)
+ return AXIS2_FAILURE;
fault_text_node = AXIS2_SOAP_FAULT_TEXT_GET_BASE_NODE(fault_text, env);
+ if(!fault_text_node)
+ return AXIS2_FAILURE;
+
/* TODO process namespace data */
axis2_om_stax_builder_set_lastnode(builder_helper_impl->om_builder, env, fault_text_node);
- axis2_soap11_builder_helper_process_text(builder_helper, env);
+ status = axis2_soap11_builder_helper_process_text(builder_helper, env);
+ if(status == AXIS2_FAILURE)
+ return AXIS2_FAILURE;
+
axis2_om_stax_builder_set_lastnode(builder_helper_impl->om_builder, env, om_element_node);
axis2_om_node_set_build_status(om_element_node, env, AXIS2_TRUE);
@@ -236,13 +278,18 @@
env , (element_level -1));
builder_helper_impl->fault_string_present = AXIS2_TRUE;
+
}else if(AXIS2_STRCMP(AXIS2_SOAP11_SOAP_FAULT_ACTOR_LOCAL_NAME, ele_localname) == 0)
{
axis2_soap_fault_role_t *fault_role = NULL;
- int status = AXIS2_SUCCESS;
fault_role = axis2_soap_fault_role_create(env);
+ if(!fault_role)
+ return AXIS2_FAILURE;
+
AXIS2_OM_ELEMENT_SET_LOCALNAME(om_ele, env, AXIS2_SOAP12_SOAP_FAULT_ROLE_LOCAL_NAME);
+
AXIS2_SOAP_FAULT_ROLE_SET_BASE_NODE(fault_role, env, om_element_node);
+
AXIS2_SOAP_FAULT_SET_ROLE(soap_fault, env, fault_role);
/*
Role element may not have a namespace associated, hence commented, else it segfaults here - Samisa
@@ -255,8 +302,13 @@
{
axis2_soap_fault_detail_t *fault_detail = NULL;
fault_detail = axis2_soap_fault_detail_create(env);
+ if(!fault_detail)
+ return AXIS2_FAILURE;
+
AXIS2_OM_ELEMENT_SET_LOCALNAME(om_ele, env, AXIS2_SOAP12_SOAP_FAULT_DETAIL_LOCAL_NAME);
+
AXIS2_SOAP_FAULT_DETAIL_SET_BASE_NODE(fault_detail, env, om_element_node);
+
AXIS2_SOAP_FAULT_SET_DETAIL(soap_fault, env, fault_detail);
}
else
@@ -297,21 +349,10 @@
int token = 0;
builder_helper_impl = AXIS2_INTF_TO_IMPL(builder_helper);
token = AXIS2_OM_STAX_BUILDER_NEXT_WITH_TOKEN(builder_helper_impl->om_builder, env);
+ if(token == -1)
+ return AXIS2_FAILURE;
- /* while(!AXIS2_OM_NODE_GET_BUILD_STATUS(last_node, env))
- {
-
- token = AXIS2_OM_STAX_BUILDER_NEXT_WITH_TOKEN(builder_helper_impl->om_builder, env);
- if(token
- if(token != AXIS2_XML_READER_CHARACTER)
- {
- AXIS2_ERROR_SET((*env)->error,
- AXIS2_ERROR_ONLY_CHARACTERS_ARE_ALLOWED_HERE, AXIS2_FAILURE);
- return AXIS2_FAILURE;
- }
- }
- */
- while(token != AXIS2_XML_READER_END_ELEMENT)
+ while(token != AXIS2_XML_READER_END_ELEMENT )
{
if(token != AXIS2_XML_READER_CHARACTER)
{
@@ -321,6 +362,8 @@
}
token = AXIS2_OM_STAX_BUILDER_NEXT_WITH_TOKEN(builder_helper_impl->om_builder, env);
+ if(token == -1)
+ return AXIS2_FAILURE;
}
return AXIS2_SUCCESS;
}
Modified: webservices/axis2/trunk/c/modules/xml/soap/soap_body.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap_body.c?rev=386253&r1=386252&r2=386253&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_body.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_body.c Wed Mar 15 20:06:25 2006
@@ -28,8 +28,6 @@
axis2_om_node_t *om_ele_node;
- int soap_version;
-
axis2_bool_t has_fault;
axis2_soap_fault_t *soap_fault;
@@ -70,11 +68,6 @@
axis2_env_t **env,
axis2_om_node_t *om_node);
-int AXIS2_CALL
-axis2_soap_body_get_soap_version(axis2_soap_body_t *body,
- axis2_env_t **env);
-
-
axis2_status_t AXIS2_CALL
axis2_soap_body_set_builder(axis2_soap_body_t *body,
axis2_env_t **env,
@@ -95,6 +88,7 @@
{
axis2_soap_body_impl_t *body_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
+
body_impl = (axis2_soap_body_impl_t*)AXIS2_MALLOC(
(*env)->allocator,
sizeof(axis2_soap_body_impl_t));
@@ -107,7 +101,6 @@
body_impl->soap_body.ops = NULL;
body_impl->om_ele_node = NULL;
body_impl->soap_builder = NULL;
- body_impl->soap_version = AXIS2_SOAP12;
body_impl->has_fault = AXIS2_FALSE;
body_impl->soap_fault = NULL;
@@ -122,17 +115,32 @@
return NULL;
}
- body_impl->soap_body.ops->free = axis2_soap_body_free;
- body_impl->soap_body.ops->has_fault = axis2_soap_body_has_fault;
- body_impl->soap_body.ops->get_fault = axis2_soap_body_get_fault;
- /*body_impl->soap_body.ops->add_fault = axis2_soap_body_add_fault; */
- body_impl->soap_body.ops->get_base_node = axis2_soap_body_get_base_node;
- body_impl->soap_body.ops->set_base_node = axis2_soap_body_set_base_node;
- body_impl->soap_body.ops->get_soap_version = axis2_soap_body_get_soap_version;
- body_impl->soap_body.ops->set_builder = axis2_soap_body_set_builder;
- body_impl->soap_body.ops->build = axis2_soap_body_build;
- body_impl->soap_body.ops->set_fault = axis2_soap_body_set_fault;
+ body_impl->soap_body.ops->free =
+ axis2_soap_body_free;
+
+ body_impl->soap_body.ops->has_fault =
+ axis2_soap_body_has_fault;
+
+ body_impl->soap_body.ops->get_fault =
+ axis2_soap_body_get_fault;
+
+ body_impl->soap_body.ops->get_base_node =
+ axis2_soap_body_get_base_node;
+
+ body_impl->soap_body.ops->set_base_node =
+ axis2_soap_body_set_base_node;
+
+ body_impl->soap_body.ops->set_builder =
+ axis2_soap_body_set_builder;
+
+ body_impl->soap_body.ops->build =
+ axis2_soap_body_build;
+
+ body_impl->soap_body.ops->set_fault =
+ axis2_soap_body_set_fault;
+
return &(body_impl->soap_body);
+
return NULL;
}
@@ -145,7 +153,7 @@
axis2_soap_body_impl_t *body_impl = NULL;
axis2_soap_body_t *body = NULL;
axis2_om_element_t *ele = NULL;
- axis2_om_node_t *parent = NULL;
+ axis2_om_node_t *parent_node = NULL;
axis2_om_element_t *parent_ele = NULL;
axis2_om_namespace_t *om_ns = NULL;
@@ -161,36 +169,33 @@
/*get parent node from SOAP envelope */
- parent = AXIS2_SOAP_ENVELOPE_GET_BASE_NODE(envelope, env);
- if(!parent)
+ parent_node = AXIS2_SOAP_ENVELOPE_GET_BASE_NODE(envelope, env);
+ if(!parent_node)
{
- AXIS2_SOAP_BODY_FREE(&(body_impl->soap_body), env);
+ AXIS2_SOAP_BODY_FREE(body, env);
return NULL;
}
parent_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(
- parent, env);
+ parent_node, env);
if(!parent_ele)
{
- AXIS2_SOAP_BODY_FREE(&(body_impl->soap_body), env);
+ AXIS2_SOAP_BODY_FREE(body, env);
return NULL;
}
om_ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(parent_ele, env);
- ele = axis2_om_element_create(env, parent,
+ ele = axis2_om_element_create(env, parent_node,
AXIS2_SOAP_BODY_LOCAL_NAME, om_ns,
&(body_impl->om_ele_node));
if (!ele)
{
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
- axis2_soap_body_free(&(body_impl->soap_body), env);
+ axis2_soap_body_free(body, env);
return NULL;
}
AXIS2_SOAP_ENVELOPE_SET_BODY(envelope, env, &(body_impl->soap_body));
- body_impl->soap_version =
- AXIS2_SOAP_ENVELOPE_GET_SOAP_VERSION(envelope, env);
return &(body_impl->soap_body);
}
@@ -205,12 +210,12 @@
body_impl = AXIS2_INTF_TO_IMPL(body);
- if(body_impl->soap_fault)
+ if(NULL != body_impl->soap_fault)
{
AXIS2_SOAP_FAULT_FREE(body_impl->soap_fault, env);
body_impl->soap_fault = NULL;
}
- if(body->ops)
+ if(NULL != body->ops)
{
AXIS2_FREE((*env)->allocator, body->ops);
body->ops = NULL;
@@ -235,13 +240,13 @@
int status = AXIS2_SUCCESS;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
body_impl = AXIS2_INTF_TO_IMPL(body);
- if(body_impl->soap_fault)
+ if(NULL != body_impl->soap_fault)
{
body_impl->has_fault = AXIS2_TRUE;
return AXIS2_TRUE;
}
else{
- if(body_impl->soap_builder != NULL)
+ if(NULL != body_impl->soap_builder )
{
while(!(body_impl->soap_fault) && !(AXIS2_OM_NODE_GET_BUILD_STATUS(body_impl->om_ele_node, env)))
{
@@ -274,7 +279,7 @@
axis2_soap_body_impl_t *body_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
body_impl = AXIS2_INTF_TO_IMPL(body);
- if(body_impl->soap_fault)
+ if(NULL != body_impl->soap_fault)
{
return body_impl->soap_fault;
}
@@ -299,7 +304,6 @@
/**
* @param soapFault
*
- */
axis2_status_t AXIS2_CALL
axis2_soap_body_add_fault(axis2_soap_body_t *body,
axis2_env_t **env,
@@ -327,6 +331,7 @@
}
return AXIS2_FAILURE;
}
+*/
axis2_om_node_t* AXIS2_CALL
axis2_soap_body_get_base_node(axis2_soap_body_t *body,
@@ -355,14 +360,6 @@
}
-int AXIS2_CALL
-axis2_soap_body_get_soap_version(axis2_soap_body_t *body,
- axis2_env_t **env)
-{
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- return AXIS2_INTF_TO_IMPL(body)->soap_version;
-}
-
axis2_status_t AXIS2_CALL
axis2_soap_body_set_builder(axis2_soap_body_t *body,
axis2_env_t **env,
@@ -386,7 +383,7 @@
soap_body_impl = AXIS2_INTF_TO_IMPL(body);
if(soap_body_impl->om_ele_node && soap_body_impl->soap_builder)
{
- while(!AXIS2_OM_NODE_GET_BUILD_STATUS(soap_body_impl->om_ele_node, env))
+ while(AXIS2_OM_NODE_GET_BUILD_STATUS(soap_body_impl->om_ele_node, env) != AXIS2_TRUE)
{
status = AXIS2_SOAP_BUILDER_NEXT(soap_body_impl->soap_builder, env);
if(status == AXIS2_FAILURE)
@@ -395,6 +392,12 @@
}
return AXIS2_SUCCESS;
}
+
+/**
+ This is an internal function
+
+*/
+
axis2_status_t AXIS2_CALL
axis2_soap_body_set_fault(axis2_soap_body_t *body,
axis2_env_t **env,
@@ -403,13 +406,16 @@
axis2_soap_body_impl_t *body_impl = NULL;
AXIS2_PARAM_CHECK((*env)->error, soap_fault, AXIS2_FAILURE);
body_impl = AXIS2_INTF_TO_IMPL(body);
- if (body_impl->has_fault)
+ if (NULL != body_impl->soap_fault)
{
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_ONLY_ONE_SOAP_FAULT_ALLOWED_IN_BODY, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
- body_impl->soap_fault = soap_fault;
- body_impl->has_fault = AXIS2_TRUE;
+ else
+ {
+ body_impl->soap_fault = soap_fault;
+ body_impl->has_fault = AXIS2_TRUE;
+ }
return AXIS2_SUCCESS;
}