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 2006/02/08 05:56:19 UTC

svn commit: r375849 - /webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c

Author: damitha
Date: Tue Feb  7 20:56:16 2006
New Revision: 375849

URL: http://svn.apache.org/viewcvs?rev=375849&view=rev
Log:
add error handler code

Modified:
    webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c

Modified: webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c?rev=375849&r1=375848&r2=375849&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c (original)
+++ webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c Tue Feb  7 20:56:16 2006
@@ -1065,10 +1065,18 @@
                 {
                     axis2_handler_desc_t *metadata = NULL;    
                     axis2_char_t *phase_name = NULL;
+                    axis2_phase_rule_t *phase_rule = NULL;
 
                     metadata = AXIS2_FLOW_GET_HANDLER(flow, env, j);
-                    phase_name = AXIS2_PHASE_RULE_GET_NAME(
-                        AXIS2_HANDLER_DESC_GET_RULES(metadata, env), env);
+                    phase_rule = AXIS2_HANDLER_DESC_GET_RULES(metadata, env);
+                    if(phase_rule)
+                    {
+                        phase_name = AXIS2_PHASE_RULE_GET_NAME(phase_rule, env);
+                    }
+                    if(!phase_name)
+                    {
+                        return AXIS2_FAILURE;
+                    }
                     if ((0 != AXIS2_STRCMP(AXIS2_PHASE_TRANSPORTIN, phase_name)) &&
                         (0 != AXIS2_STRCMP(AXIS2_PHASE_DISPATCH, phase_name)) &&
                         (0 != AXIS2_STRCMP(AXIS2_PHASE_POST_DISPATCH, phase_name)) &&
@@ -1102,7 +1110,9 @@
 {
     axis2_phase_resolver_impl_t *resolver_impl = NULL;
     int type = 0;
-    
+    axis2_status_t status = AXIS2_FAILURE;
+   
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     resolver_impl = AXIS2_INTF_TO_IMPL(phase_resolver);
     
     for (type = 1; type < 5; type++) 
@@ -1173,17 +1183,29 @@
             {
                 axis2_handler_desc_t *metadata = NULL;
                 axis2_char_t *phase_name = NULL;
+                axis2_phase_rule_t *phase_rule = NULL;
 
                 metadata = AXIS2_FLOW_GET_HANDLER(flow, env, j);
-                phase_name = AXIS2_PHASE_RULE_GET_NAME(
-                        AXIS2_HANDLER_DESC_GET_RULES(metadata, env), env);
+                phase_rule = AXIS2_HANDLER_DESC_GET_RULES(metadata, env);
+                if(phase_rule)
+                {
+                    phase_name = AXIS2_PHASE_RULE_GET_NAME(phase_rule, env);
+                }
+                if(!phase_name)
+                {
+                    return AXIS2_FAILURE;
+                }
                 if ((0 != AXIS2_STRCMP(AXIS2_PHASE_TRANSPORTIN, phase_name)) &&
                     (0 != AXIS2_STRCMP(AXIS2_PHASE_DISPATCH, phase_name)) &&
                     (0 != AXIS2_STRCMP(AXIS2_PHASE_POST_DISPATCH, phase_name)) &&
                     (0 != AXIS2_STRCMP(AXIS2_PHASE_PRE_DISPATCH, phase_name)))
                 {
-                    AXIS2_PHASE_HOLDER_ADD_HANDLER(resolver_impl->phase_holder,
+                    status = AXIS2_PHASE_HOLDER_ADD_HANDLER(resolver_impl->phase_holder,
                         env, metadata);
+                    if(AXIS2_SUCCESS != status)
+                    {
+                        return status;
+                    }
           
                 } 
                 else