I've seen a pretty strange behavior when I was trying out the JMS-JCA provider support in the ESB.
My simple testcase was to have an action in the pipeline throw a RuntimeException("Some exceptiontext...") in its process method.
Now what I've found was that when the action class had a @Process annotation the exception caused the pipeline to route the message to the DeadLetterService, indicating that no JTA transaction had been set up. However, with the same logic but using the legacy subclassing style of overriding the process() method the message got rolled back to the JMS DLQ as expected.
Is there something in the annotation support that would indicate that annotated actions should differ from subclassed ones in respect to transactions? Or is does the ActionPipeLine error handling differentiate between the two styles?