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 da...@apache.org on 2008/06/26 21:36:42 UTC

svn commit: r672007 - in /webservices/axis2/trunk/c/src/core: description/svc_grp.c engine/conf.c

Author: damitha
Date: Thu Jun 26 12:36:42 2008
New Revision: 672007

URL: http://svn.apache.org/viewvc?rev=672007&view=rev
Log:
Fixing AXIS2C-1205

Modified:
    webservices/axis2/trunk/c/src/core/description/svc_grp.c
    webservices/axis2/trunk/c/src/core/engine/conf.c

Modified: webservices/axis2/trunk/c/src/core/description/svc_grp.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/description/svc_grp.c?rev=672007&r1=672006&r2=672007&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/description/svc_grp.c (original)
+++ webservices/axis2/trunk/c/src/core/description/svc_grp.c Thu Jun 26 12:36:42 2008
@@ -213,7 +213,6 @@
     const axutil_env_t * env,
     axis2_svc_t * svc)
 {
-    axis2_phase_resolver_t *handler_resolver = NULL;
     axis2_status_t status = AXIS2_FAILURE;
     const axutil_qname_t *svc_qname = NULL;
     axis2_char_t *svc_name = NULL;
@@ -234,36 +233,12 @@
     svc_name = axutil_qname_to_string((axutil_qname_t *) svc_qname, env);
     axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, svc);
 
-    handler_resolver = axis2_phase_resolver_create_with_config_and_svc(env, svc_grp->parent, svc);
-
-    if (!handler_resolver)
-    {
-        /* remove the previously added service */
-        axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase resolver failed for service %s", 
-                svc_name);
-
-        return AXIS2_FAILURE;
-    }
-
-    status = axis2_phase_resolver_build_execution_chains_for_svc(handler_resolver, env);
-    if (AXIS2_SUCCESS != status)
-    {
-        /* remove the previously added service */
-        axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
-        axis2_phase_resolver_free(handler_resolver, env);
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
-            "Building chains failed within phase resolver for service %s", svc_name);
-        return status;
-    }
-
     status = axis2_svc_set_last_update(svc, env);
 
     if (AXIS2_SUCCESS != status)
     {
         /* remove the previously added service */
         axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
-        axis2_phase_resolver_free(handler_resolver, env);
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Setting last update failed for service %s", 
                 svc_name);
 
@@ -275,14 +250,11 @@
     {
         /* remove the previously added service */
         axutil_hash_set(svc_grp->svcs, svc_name, AXIS2_HASH_KEY_STRING, NULL);
-        axis2_phase_resolver_free(handler_resolver, env);
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Setting parent failed for service %s", svc_name);
 
         return status;
     }
 
-    axis2_phase_resolver_free(handler_resolver, env);
-
     return status;
 }
 

Modified: webservices/axis2/trunk/c/src/core/engine/conf.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/engine/conf.c?rev=672007&r1=672006&r2=672007&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/engine/conf.c (original)
+++ webservices/axis2/trunk/c/src/core/engine/conf.c Thu Jun 26 12:36:42 2008
@@ -689,9 +689,11 @@
     const axutil_env_t * env,
     axis2_svc_t * svc)
 {
+    axis2_phase_resolver_t *phase_resolver = NULL;
     axis2_svc_grp_t *svc_grp = NULL;
     const axis2_char_t *svc_grp_name = NULL;
     axis2_status_t status = AXIS2_FAILURE;
+
     AXIS2_PARAM_CHECK(env->error, svc, AXIS2_FAILURE);
 
     /* We need to first create a service group with the same name as the 
@@ -699,41 +701,68 @@
     svc_grp_name = axis2_svc_get_name(svc, env);
     if (!svc_grp_name)
     {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
-            "Service has no name set");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Service has no name set");
+
         return AXIS2_FAILURE;
     }
+
     svc_grp = axis2_svc_grp_create(env);
     if (!svc_grp)
     {
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
-            "Creating service group as parent of service %s failed", 
-            svc_grp_name);
+            "Creating service group as parent of service %s failed", svc_grp_name);
+
             return AXIS2_FAILURE;
     }
+
     status = axis2_svc_grp_set_name(svc_grp, env, svc_grp_name);
-    if (AXIS2_FAILURE == status)
+    if (AXIS2_SUCCESS != status)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
             "Setting name to service group failed");
         return status;
     }
+
     status = axis2_svc_grp_set_parent(svc_grp, env, conf);
-    if (AXIS2_FAILURE == status)
+    if (AXIS2_SUCCESS != status)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
             "Setting parent to service group %s failed", svc_grp_name);
+
         return status;
     }
+
+    phase_resolver = axis2_phase_resolver_create_with_config_and_svc(env, conf, svc);
+
+    if (!phase_resolver)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Creating phase resolver failed for service %s", 
+                axis2_svc_get_name(svc, env));
+
+        return AXIS2_FAILURE;
+    }
+
+    status = axis2_phase_resolver_build_execution_chains_for_svc(phase_resolver, env);
+    axis2_phase_resolver_free(phase_resolver, env);
+    if (AXIS2_SUCCESS != status)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
+            "Building chains failed within phase resolver for service %s", axis2_svc_get_name(svc, env));
+
+        return status;
+    }
+
     status = axis2_svc_grp_add_svc(svc_grp, env, svc);
-    if (AXIS2_FAILURE == status)
+
+    if (AXIS2_SUCCESS != status)
     {
         AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, 
-            "Adding service %s to service group %s failed", svc_grp_name, 
-            svc_grp_name);
+            "Adding service %s to service group %s failed", svc_grp_name, svc_grp_name);
+
         return status;
     }
+
     status = axis2_conf_add_svc_grp(conf, env, svc_grp);
 
     return status;