You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.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;
 }