axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Gourley (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2-1754) Exceptions thrown by service methods are not propogated to clients properly.
Date Mon, 20 Nov 2006 21:10:01 GMT
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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message