try {
final TransportRequestHandler handler = transportServiceAdapter.handler(action);
if (handler == null) {
throw new ActionNotFoundTransportException(action);
}
final Streamable streamable = handler.newInstance();
streamable.readFrom(buffer);
if (handler.executor() == ThreadPool.Names.SAME) {
//noinspection unchecked
handler.messageReceived(streamable, transportChannel);
} else {
threadPool.executor(handler.executor()).execute(new RequestHandler(handler, streamable, transportChannel, action));