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