@Override public void message(int sequenceNo, Message message) { final ClientRpcController controller; synchronized (activeMethodMap) { controller = activeMethodMap.get(sequenceNo); // TODO: remove controller from activeMethodMap } if (message instanceof Rpc.RpcFinished) { Rpc.RpcFinished finished = (Rpc.RpcFinished) message; if (finished.getFailed()) { controller.failure(finished.getErrorText()); } else { controller.response(null); } } else { controller.response(message); } } };