@Override public void run() {
//noinspection UnnecessaryLocalVariable
try (Socket socket = adoptSocket) {
setTcpNoDelay(socket);
final ServerInvocation invocation = server.invocation((Request)read(socket, messageSerializer));
final Reply reply = invocation.invoke(Interceptors.threadLocal(SOCKET, socket));
if (!invocation.oneWay) {
write(reply, socket, messageSerializer);
}
} catch (final Exception e) {
throw Exceptions.wrap(e);