[
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.