@Override
                public void operationComplete(ChannelFuture f) throws Exception {
                    if (!f.isSuccess()) {
                        conn.removeInvokeFuture(requestId);
                        future.putResponse(getCommandFactory(conn).createSendFailedResponse(
                            conn.getRemoteAddress(), f.cause()));
                        LOGGER.error("Invoke send failed, id={}", requestId, f.cause());
                    }
                }
Synchronous invocation

@param conn
@param request
@param timeoutMillis
@return
@throws InterruptedException 
@throws RemotingException
src/main/java/com/alipay/remoting/BaseRemoting.java