(Rpc<TArgument, TResult> p, RaftRpc<TArgument, TResult> rpc)
| 128 | } |
| 129 | |
| 130 | private <TArgument extends Serializable, TResult extends Serializable> |
| 131 | long sendHandle(Rpc<TArgument, TResult> p, RaftRpc<TArgument, TResult> rpc) { |
| 132 | var net = (RaftRpc<TArgument, TResult>)p; |
| 133 | if (net.isTimeout() || isRetryError(net.getResultCode())) |
| 134 | return Procedure.Success; // Pending Will Resend. |
| 135 | |
| 136 | long requestId = rpc.getUnique().getRequestId(); |
| 137 | if (pending.remove(requestId) != null) { |
| 138 | rpc.setRequest(net.isRequest()); |
| 139 | rpc.Result = net.Result; |
| 140 | rpc.setSender(net.getSender()); |
| 141 | rpc.setResultCode(net.getResultCode()); |
| 142 | |
| 143 | if (rpc.getResultCode() == Procedure.RaftApplied) |
| 144 | rpc.setIsTimeout(false); |
| 145 | if (isDebugEnabled) { |
| 146 | logger.debug("sendHandle Rpc={} RequestId={} ResultCode={} Sender={}", |
| 147 | rpc.getClass().getSimpleName(), requestId, rpc.getResultCode(), rpc.getSender()); |
| 148 | } |
| 149 | return rpc.handle.applyAsLong(rpc); |
| 150 | } |
| 151 | return Procedure.Success; |
| 152 | } |
| 153 | |
| 154 | private static boolean isRetryError(long error) { |
| 155 | return error == Procedure.CancelException || |
no test coverage detected