Unhelpful message AXIS2_ERROR_INVALID_NULL_PARAM when DLLs missing from client 
repo lib directory.
--------------------------------------------------------------------------------------------------

                 Key: AXIS2C-790
                 URL: https://issues.apache.org/jira/browse/AXIS2C-790
             Project: Axis2-C
          Issue Type: Bug
          Components: core/deployment
    Affects Versions: 1.1.0
         Environment: Windows XP, Visual Studio 2005
            Reporter: Bill Mitchell
            Priority: Minor


If the client repository is incomplete, in particular, if the client has the 
axis2_http_sender.dll and axis2_http_receiver.dll in the binary directory with 
the application instead of in the repo/lib directory, the service cannot be 
created with a very uninformative Axis errorno 2, 
AXIS2_ERROR_INVALID_NULL_PARAM.  

The initial error is diagnosed well by axutil_class_loader_create_dll() who 
posts errorno 100, AXIS2_ERROR_DLL_CREATE_FAILED.  But the code in 
axis2_conf_builder_process_transport_senders() in conf_builder.c ignores the 
error indicated by the null pointer return and proceeds to call 
axis2_transport_out_desc_set_sender() with the null pointer, yielding the very 
uninformative NULL_PARAM error.  

In axis2_conf_builder_process_transport_senders(), the code fragment:
            transport_sender =
                axutil_class_loader_create_dll(env, impl_info_param);
            axis2_transport_out_desc_add_param(transport_out, env,
                                               impl_info_param);
            status =
                axis2_transport_out_desc_set_sender(transport_out, env,
                                                    transport_sender);
should read:
            transport_sender =
                axutil_class_loader_create_dll(env, impl_info_param);
            axis2_transport_out_desc_add_param(transport_out, env,
                                               impl_info_param);
            if (!transport_sender)
            {
                axis2_transport_out_desc_free(transport_out, env);
                return AXIS2_FAILURE;
            }
            status =
                axis2_transport_out_desc_set_sender(transport_out, env,
                                                    transport_sender);
When I introduced this change, the service create fails with the useful errorno 
100 pointing the administrator to the DLL problem.  

Of course, when the axis2_http_sender.dll and axis2_http_receiver.dll are 
placed correctly in the repo/lib directory, the error disappears.  

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to