-
Enhancement
-
Resolution: Done
-
Major
-
8.1.0.Final
-
None
The implementations of CommandDispatcher#submitOnCluster and #executeOnCluster completely hide any exceptions that occur while trying to send the command. This makes it very difficult to debug things like serialization exceptions. (Note: In the 8.x branch, the implementation is in ServiceCommandDispatcher. In master, it has moved to ChannelCommandDispatcher, but the code is essentially the same and the issue still exists.)
Instead of hiding the exception, the implementation should expose the exception to the developer in some way. A couple possibilities:
- Don't catch the exception.
- Catch the exception and return a Map with one entry, where the key is the local node and the value is a Future or CommandResponse that contains the exception.
- Catch the exception and return an empty map, but also log the exception.