axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bill Nagy <n...@watson.ibm.com>
Subject Re: [Axis2] Why does OutInAxisOperation invoke the InFlow and InFaultFlow when a fault is received in a response?
Date Sat, 16 Sep 2006 23:15:16 GMT
On Sat, 2006-09-16 at 23:47 +0530, Sanjiva Weerawarana wrote:
> On Fri, 2006-09-15 at 13:54 -0700, Bill Nagy wrote:
> > Is there a particular reason that the OutInAxisOperation invokes the
> > InFlow (via AxisEngine.receive()) for all response messages, even though
> > it could most likely use transport information (e.g. ask the transport
> > if an error was returned) to determine that a fault had occurred and
> > simply invoke the InFaultFlow (via AxisEngine.receiveFault())?  As it
> > stands now, the InFlow will be executed followed by the InFaultFlow.  If
> > the policy (i.e. set of QoS handlers) is different, executing the InFlow
> > could cause the message processing to fail when it would have succeeded
> > using the InFaultFlow.
> 
> Hmm. Good point but how do you tell that its a fault without looking at
> the SOAP message? How does the transport know that the payload is a SOAP
> Fault?

Well, most transports have a status/error code for responses and if you
came back through the normal chain (i.e. not via an AxisFault) it's
probably a reasonably safe assumption that you have some sort of
Envelope.

In any event, ignoring the previous section, the code that executes the
InFlow lives in OutInAxisOperation.send(...), and that already looks at
the SOAPEnvelope.  It just always executes the InFlow without first
looking to see if there was a fault.

-Bill



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