axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Francois Mireaux (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AXIS2C-1402) AXIS2_PARAM_CHECK overwrite previously set error status
Date Thu, 22 Oct 2009 14:48:59 GMT

     [ https://issues.apache.org/jira/browse/AXIS2C-1402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Francois Mireaux updated AXIS2C-1402:
-------------------------------------

    Attachment: axis2_param_check.patch

Content :
    1 initialize env status to AXIS_SUCCESS
    2 don't reset env status in AXIS2_PARAM_CHECK
    3 exit from do loop when root_node is closed in om_stax_builder_next
    4 don't set env status to failure when module parent is undefined in axis2_module_desc_is_param_locked
    5 force env status to AXIS2_SUCCESS at axis2_engine_send end (returned status is AXIS2_SUCCESS)

All Axis2c samples which works without patch works with patch (google and mtom_callback don't
work out off the box) but it's more likely that there are others problematic use cases.

Patch solve errors I have found in WSF-PHP context (only poor tests righrt now).

Which functionnality is known as broken by the AXIS2_PARAM_CHECK modification ?

> AXIS2_PARAM_CHECK overwrite previously set error status
> -------------------------------------------------------
>
>                 Key: AXIS2C-1402
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1402
>             Project: Axis2-C
>          Issue Type: Bug
>    Affects Versions: 1.6.0
>            Reporter: S.Uthaiyashankar
>            Assignee: S.Uthaiyashankar
>             Fix For: Next Version
>
>         Attachments: axis2_param_check.patch
>
>
> When checking AXIS2_PARAM_CHECK, if it is success, it overwrites STATUS_CODE by setting
AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_SUCCESS); 
> check the macro definition:
> #define AXIS2_PARAM_CHECK(error, object, error_return)                  \
>     if (!object)                                                        \
>     {                                                                   \
>         AXIS2_ERROR_SET_ERROR_NUMBER(error, AXIS2_ERROR_INVALID_NULL_PARAM); \
>         AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_FAILURE);              \
>         return error_return;                                            \
>     }                                                                   \
>     else                                                                \
>     {                                                                   \
>         AXIS2_ERROR_SET_STATUS_CODE(error, AXIS2_SUCCESS);              \
>     }
> Ideally, if PARAM_CHECK is success, it should not touch error status code. 
> This macro is a problem when sending soap faults from generated code. To send faults
from generated code, we have to set the error status inside service logic and it will be checked
by the engine to create soap fault. However, after setting error status, there are several
generated codes doing AXIS2_PARAM_CHECK and hence overwriting the status code. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message