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 di...@apache.org on 2006/12/09 07:43:00 UTC

svn commit: r484938 - in /webservices/axis2/trunk/c: include/axis2_options.h modules/core/clientapi/op_client.c modules/core/clientapi/options.c

Author: dinesh
Date: Fri Dec  8 22:42:58 2006
New Revision: 484938

URL: http://svn.apache.org/viewvc?view=rev&rev=484938
Log:
fixed:axis2c-209, invoke service with in a service. it crashes becasue of some problems in axiom_node and op_client.

Modified:
    webservices/axis2/trunk/c/include/axis2_options.h
    webservices/axis2/trunk/c/modules/core/clientapi/op_client.c
    webservices/axis2/trunk/c/modules/core/clientapi/options.c

Modified: webservices/axis2/trunk/c/include/axis2_options.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_options.h?view=diff&rev=484938&r1=484937&r2=484938
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_options.h (original)
+++ webservices/axis2/trunk/c/include/axis2_options.h Fri Dec  8 22:42:58 2006
@@ -661,6 +661,29 @@
                     const axis2_env_t *env,
                     const axis2_char_t *soap_action);
 
+		/**
+		 * Sets xml parser reset
+         * @param options pointer to options struct
+         * @param env pointer to environment struct
+         * @param reset flag is a boolean value
+         * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+         */
+		axis2_status_t (AXIS2_CALL *
+						set_xml_parser_reset)(
+							axis2_options_t *options,
+							const axis2_env_t *env,
+							const axis2_bool_t paser_reset_flag);
+
+        /**
+         * Gets xml parser reset value,
+         * @param options pointer to options struct
+         * @param env pointer to environment struct
+         * @return xml parser reset boolean value
+         */
+        axis2_bool_t (AXIS2_CALL *
+                get_xml_parser_reset)(
+                    const axis2_options_t *options,
+                    const axis2_env_t *env);
 
         /**
          * Frees options struct.
@@ -786,6 +809,11 @@
 #define AXIS2_OPTIONS_GET_TO(options, env) \
       ((options)->ops->get_to(options, env))
 
+/** Get xml parser reset value
+    @sa axis2_options_opt#get_xml_parser_reset */
+#define AXIS2_OPTIONS_GET_XML_PARSER_RESET(options, env) \
+      ((options)->ops->get_xml_parser_reset(options, env))
+
 /** Whether to use a separate listener.
     @sa axis2_options_ops#get_use_separate_listener */
 #define AXIS2_OPTIONS_GET_USE_SEPERATE_LISTENER(options, env) \
@@ -943,6 +971,9 @@
 #define AXIS2_OPTIONS_SET_SOAP_ACTION(options, env, action) \
       ((options)->ops->set_soap_action(options, env, action))
 
+/** Sets xml parser reset value  */
+#define AXIS2_OPTIONS_SET_XML_PARSER_RESET(options, env, flag) \
+      ((options)->ops->set_xml_parser_reset(options, env, flag))
 
 /** Frees the options struct.
     @sa axis2_options_ops#free*/

Modified: webservices/axis2/trunk/c/modules/core/clientapi/op_client.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/clientapi/op_client.c?view=diff&rev=484938&r1=484937&r2=484938
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/op_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/op_client.c Fri Dec  8 22:42:58 2006
@@ -700,9 +700,14 @@
         op_client_impl->op_ctx = NULL;
     }
 
+	if (AXIS2_OPTIONS_GET_XML_PARSER_RESET(op_client_impl->options, env))
+	{
+		axiom_xml_reader_cleanup(); 
+	}
+
     AXIS2_FREE(env->allocator, op_client_impl);
     op_client_impl = NULL;
-    axiom_xml_reader_cleanup();
+
     return AXIS2_SUCCESS;
 }
 

Modified: webservices/axis2/trunk/c/modules/core/clientapi/options.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/clientapi/options.c?view=diff&rev=484938&r1=484937&r2=484938
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/options.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/options.c Fri Dec  8 22:42:58 2006
@@ -56,6 +56,7 @@
     axis2_bool_t manage_session;
     axis2_bool_t enable_mtom;
     axis2_char_t *soap_action;
+	axis2_bool_t xml_parser_reset;
 }
 axis2_options_impl_t;
 
@@ -346,6 +347,17 @@
     const axis2_options_t *options,
     const axis2_env_t *env);
 
+axis2_status_t AXIS2_CALL
+axis2_options_set_xml_parser_reset(
+    axis2_options_t *options,
+    const axis2_env_t *env,
+    const axis2_bool_t xml_parser_reset);
+
+axis2_bool_t  AXIS2_CALL
+axis2_options_get_xml_parser_reset(
+    const axis2_options_t *options,
+    const axis2_env_t *env);
+
 axis2_options_t *AXIS2_CALL
 axis2_options_create(
     const axis2_env_t *env)
@@ -1240,6 +1252,7 @@
     options_impl->soap_version = AXIOM_SOAP12;
     options_impl->enable_mtom = AXIS2_FALSE;
     options_impl->soap_action = NULL;
+    options_impl->xml_parser_reset = AXIS2_TRUE;
 }
 
 static void
@@ -1294,6 +1307,8 @@
     options->ops->get_enable_mtom = axis2_options_get_enable_mtom;
     options->ops->set_soap_action = axis2_options_set_soap_action;
     options->ops->get_soap_action = axis2_options_get_soap_action;
+    options->ops->set_xml_parser_reset = axis2_options_set_xml_parser_reset;
+    options->ops->get_xml_parser_reset = axis2_options_get_xml_parser_reset;
     options->ops->free = axis2_options_free;
 }
 
@@ -1400,5 +1415,33 @@
     }
     return AXIS2_SUCCESS;
 }
+
+
+axis2_bool_t AXIS2_CALL
+axis2_options_get_xml_parser_reset (
+	const axis2_options_t *options,
+	const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    return AXIS2_INTF_TO_IMPL(options)->xml_parser_reset;
+}
+
+axis2_status_t AXIS2_CALL 
+axis2_options_set_xml_parser_reset (
+    axis2_options_t *options,
+    const axis2_env_t *env,
+    const axis2_bool_t xml_parser_reset)
+{
+    axis2_options_impl_t *options_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    options_impl = AXIS2_INTF_TO_IMPL(options);
+
+	options_impl->xml_parser_reset = xml_parser_reset;
+    return AXIS2_SUCCESS;
+}
+
+
+
 
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org