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 2008/05/27 14:06:45 UTC

svn commit: r660479 - /webservices/axis2/trunk/c/src/core/deployment/desc_builder.c

Author: nandika
Date: Tue May 27 05:06:43 2008
New Revision: 660479

URL: http://svn.apache.org/viewvc?rev=660479&view=rev
Log:
patch from jira https://issues.apache.org/jira/browse/AXIS2C-884 applied 

Modified:
    webservices/axis2/trunk/c/src/core/deployment/desc_builder.c

Modified: webservices/axis2/trunk/c/src/core/deployment/desc_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/deployment/desc_builder.c?rev=660479&r1=660478&r2=660479&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/deployment/desc_builder.c (original)
+++ webservices/axis2/trunk/c/src/core/deployment/desc_builder.c Tue May 27 05:06:43 2008
@@ -26,12 +26,11 @@
 
 struct axis2_desc_builder
 {
-
     /**
      * Store the full path to configuration file.
      */
     axis2_char_t *file_name;
-    axiom_stax_builder_t *builder;
+	axiom_node_t *root;
     struct axis2_dep_engine *engine;
 };
 
@@ -61,7 +60,7 @@
     }
     desc_builder->file_name = NULL;
     desc_builder->engine = NULL;
-    desc_builder->builder = NULL;
+    desc_builder->root = NULL;
 
     return desc_builder;
 }
@@ -86,7 +85,7 @@
         return NULL;
     }
 
-    desc_builder->builder = NULL;
+	desc_builder->root = NULL;
 
     desc_builder->file_name = axutil_strdup(env, file_name);
     if (!desc_builder->file_name)
@@ -134,9 +133,9 @@
         AXIS2_FREE(env->allocator, desc_builder->file_name);
     }
 
-    if (desc_builder->builder)
+    if (desc_builder->root)
     {
-        axiom_stax_builder_free(desc_builder->builder, env);
+		axiom_node_free_tree(desc_builder->root,env);
     }
 
     /* we cannot free deployment engine here */
@@ -156,7 +155,7 @@
 {
     axiom_xml_reader_t *reader = NULL;
     axiom_document_t *document = NULL;
-    axiom_node_t *root = NULL;
+	axiom_stax_builder_t *builder = NULL;
 
     if (!desc_builder->file_name)
     {
@@ -168,7 +167,7 @@
     }
 
     /** create pull parser using the file path to configuration file */
-    reader = axiom_xml_reader_create_for_file(env, desc_builder->file_name,
+    reader = axiom_xml_reader_create_for_file(env, desc_builder->file_name, 
                                               NULL);
 
     if (!reader)
@@ -181,9 +180,9 @@
     };
 
     /** create axiom_stax_builder by parsing pull_parser struct */
-    desc_builder->builder = axiom_stax_builder_create(env, reader);
+    builder = axiom_stax_builder_create(env, reader);
 
-    if (!(desc_builder->builder))
+    if (!(builder))
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_CREATING_XML_STREAM_READER,
                         AXIS2_FAILURE);
@@ -197,7 +196,7 @@
         get the om document form builder 
         document is the container of om model created using builder
     */
-    document = axiom_stax_builder_get_document(desc_builder->builder, env);
+    document = axiom_stax_builder_get_document(builder, env);
 
     /**
      * In description building we don't want defferred building. So build
@@ -208,8 +207,13 @@
     /**
         get root element , building starts hear 
      */
-    root = axiom_document_get_root_element(document, env);
-    return root;
+    desc_builder->root = axiom_document_get_root_element(document, env);
+	/**
+		We have built the whole document. So no need of keeping the builder.
+	*/
+	axiom_stax_builder_free_self(builder, env);
+
+    return desc_builder->root;
 }
 
 AXIS2_EXTERN axis2_flow_t *AXIS2_CALL