When simulate the TravelAgencyInvalid.scn,the receive icon on returnPayment(tns:ReturnThePaymentTotally) message shows red. The choreography raises an exception in both send and receive roles once SendTicketInvalid occurred in OrderTicket sub-choreography. This exception is not caught in the performed choreography, thus should be propagated to the enclosing choreography for handling. Here the propagation should mean that the exception raises in the enclosed choreography again, as if it happens here originally. Thus all the roles take part in enclosing choreography should be informed about the occurrence of exception for them to handle the exception collaborately. But the current version pi4soa didn't support the exception propagate mechanism correctly. In this TravelAgency example, the customer couldn't know that the exception has occurred, so the Customer participant consider the receive message to be incorrect.
BTW, in ws-cdl specification chapter5.7 Choreography Life-line, paragraph 7, we see: "The unsuccessfully completed choreography MUST enter the Closed State once the exceptionBlock, if present, is completed. If the exceptionBlock is not present, the choreography implicitly enters the Closed State and the exception occurred MUST be propagated to the enclosing choreography, if an enclosing choreography exists."
TravelAgency