/**
   * @param nodeId Node ID.
   * @param res Response.
   */
  private void processFinishResponse(UUID nodeId, GridNearTxFinishResponse<K, V> res) {
    GridNearTxFinishFuture<K, V> fut =
        (GridNearTxFinishFuture<K, V>)
            ctx.mvcc().<GridCacheTx>future(res.xid().id(), res.futureId());

    if (fut == null) {
      if (log.isDebugEnabled())
        log.debug(
            "Failed to find future for finish response [sender=" + nodeId + ", res=" + res + ']');

      return;
    }

    fut.onResult(nodeId, res);
  }