I didn't look at the code, but it sounds like it may be a bug with the reflective action methods. As a test, get your action to extend AbstractActionPipelineProcessor and in the implementation, throw an ActionProcessingException from the process(Message) method.
It is moved into the 'done' state because the gateway has done its job, the message has been passed into the Service for processing.
If an error is thrown in the pipeline then a *fault* message will be returned to the endpoint specified in the FaultTo address.
To handle the faults you will need to specify an intermediate service *or* use a composer on the file gateway.
Ah that's it... didn't think of that :-) Darn gateways!!
rofl, one of your favourite 'Soap Box' topics :)
An opinion which we all share ;)
Thank you for the response.
May you give me an practical example for an error case so that the gateway doesn't done the job.