I’ve done a little test involving a @Timeout annotated method on a Custom Command Gateway interface. This method is declared as throwing a TimeoutException.
I’ve observed that, when invoked through a SimpleCommandBus, the TimeoutException is never thrown and the processing of the CommandHandler run normally whatever the value of @Timeout is.
The same example does work with a DisruptorCommandBus: a TimeoutException is thrown to the calling thread according to the value of @Timeout.
I guess that this due to the fact that with a SimpleCommandBus the CommandHandler is executed in the context of the calling thread.So no way to manage timeout!
May be it should be mentionned in the documentation.