Exceptions thrown by service methods are not propogated to clients properly.
----------------------------------------------------------------------------

                 Key: AXIS2-1754
                 URL: http://issues.apache.org/jira/browse/AXIS2-1754
             Project: Apache Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: rpc
    Affects Versions: 1.1
         Environment: OS: Windows XP SP2, Eclipse 3.2 IDE, Java 5.0 Update 7
            Reporter: Aaron Gourley


This bug was introduced in revision 452427 
(http://svn.apache.org/viewvc?view=rev&revision=452427)

In the invokeBusinessLogic() method, calls to "AxisFault.makeFault(e)" were 
changed to calls to "new AxisFault(msg, e)" in the catch blocks in the 
try/catch statements.  This is particularly a problem in the handling of 
InvocationTargetExceptions, because the call was actually replaced with a call 
to "new AxisFault(msg) and exceptions thrown by service methods (which are 
wrapped by InvocationTargetExceptions at this point) are discarded.  The old 
behaviour was to wrap the cause exception in an AxisFault and rethrow.  Now the 
cause exception is only used for its message and a new AxisFault exception is 
created with the same message (and no reference to the exception thrown by the 
service method).

This results in a meaningless exception being thrown every time.

Example:
My service object throws an exception object (which is defined in my WSDL) 
containing some member fields: messageId and resultCode.  I do not call 
setMessage() on this exception, so getMessage() returns null.  After the 
RPCMessageReceivers process my exception, an AxisFault is thrown with message 
"Exception occurred while trying to invoke service method " + method.getName(). 
 My original exception is thrown away and I lose my messageId and resultCode 
information.  I get the following SOAP message from the server:

HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=07DA197EBF0B871BF5F99B82A177EE01; 
Path=/TerminalLocationService
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 20 Nov 2006 20:05:48 GMT
Connection: close

169
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";><soapenv:Header 
/><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Exception
 occurred while trying to invoke service method 
getLocationForGroup</faultstring><detail 
/></soapenv:Fault></soapenv:Body></soapenv:Envelope>
0

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

Reply via email to