Yep, this is HornetQ related. Creating a SmooksAction (in XA-transacted mode) where you do:
smooks.filterSource(execContext, source);
System.out.println("I'm gonna sleep now for 10s");
Thread.sleep(10000);
System.out.println("Time to wakeup");
Will result in esbr:routed messages being processed in the following services before Thread.sleep() is done. RuntimeException here will not roll them back. This all works fine with JBoss Messaging. A bug, but in which software?