You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by "Sloan, John L (John)" <js...@avaya.com> on 2006/05/20 00:11:36 UTC

Fault versus ERROR for RobustInOnly exchanges

My reading of the JBI specification is that

O	a PROVIDER may respond to a RobustInOnly
	MessageExchange with a Fault;

o	a Fault is a NormalizedMessage in the
	MessageExchange container just like the
	In and Out messages;

O	a MessageExchange containing a Fault is
	not necessarily the same as a MessageExchange
	with an ExchangeStatus.ERROR (although it
	could be, Fault and ERROR are orthogonal
	concepts).

When I try

	PROVIDER replies to RobustInOnly MessageExchange by

		Fault fault = exchange.createFault();
		fault.setContent(foo);
		exchange.setMessage(fault, "fault");
		channel.send(exchange)

ServiceMix-3.0 responds with a MessagingException
of "illegal exchange status: Active".

Must MessageExchanges containing Faults be set to
ExchangeStatus.ERROR?

--
John Sloan              email jsloan@avaya.com
Avaya Inc.              voice  +1 303 538 2746
1300 West 120th Ave.    office          B1-C46
Westminster CO 80234-2701 USA 



Re: Fault versus ERROR for RobustInOnly exchanges

Posted by Guillaume Nodet <gn...@gmail.com>.
You're right.
We have test cases to ensure that it works.
However there was a bug on MEPs that has been fixed two months ago.
See
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/RobustInOnlyImpl.java?r1=379750&r2=383902&diff_format=h
Could it be that you use this old version ?  If yes, just replace your
servicemix-core jar by a recent version.

Cheers,
Guillaume Nodet

On 5/20/06, Sloan, John L (John) <jsloan@avaya.com > wrote:
>
>
> My reading of the JBI specification is that
>
> O       a PROVIDER may respond to a RobustInOnly
>         MessageExchange with a Fault;
>
> o       a Fault is a NormalizedMessage in the
>         MessageExchange container just like the
>         In and Out messages;
>
> O       a MessageExchange containing a Fault is
>         not necessarily the same as a MessageExchange
>         with an ExchangeStatus.ERROR (although it
>         could be, Fault and ERROR are orthogonal
>         concepts).
>
> When I try
>
>         PROVIDER replies to RobustInOnly MessageExchange by
>
>                 Fault fault = exchange.createFault();
>                 fault.setContent(foo);
>                 exchange.setMessage(fault, "fault");
>                 channel.send(exchange)
>
> ServiceMix-3.0 responds with a MessagingException
> of "illegal exchange status: Active".
>
> Must MessageExchanges containing Faults be set to
> ExchangeStatus.ERROR?
>
> --
> John Sloan   email jsloan@avaya.com
> Avaya Inc.   voice +1 303 538 2746
> 1300 West 120th Ave.    office B1-C46
> Westminster CO 80234-2701 USA
>
>
>


-- 
Cheers,
Guillaume Nodet