docs: public void repairSurvivors()
      {
          // cancel() and repair() must be synchronized by the caller (the deliver lock,
          // currently). If cancelled and the last repair message arrives, don't send
          // out corrections!
          if (this.m_promotionResult.isCancelled()) {
              repairLogger.debug(m_whoami + "Skipping repair message creation for cancelled Term.");
              return;
          }
  
          int queued = 0;
          if (repairLogger.isDebugEnabled()) {
              repairLogger.debug(m_whoami + "received all repair logs and is repairing surviving replicas.");
          }
          for (Iv2RepairLogResponseMessage li : m_repairLogUnion) {
              if (repairLogger.isDebugEnabled()) {
                  repairLogger.debug(m_whoami + "RepairResponse:\n" + li);
              }
              List<Long> needsRepair = new ArrayList<Long>(5);
              for (Entry<Long, ReplicaRepairStruct> entry : m_replicaRepairStructs.entrySet()) {
                  if  (entry.getValue().needs(li.getHandle())) {
                      ++queued;
                      if (repairLogger.isDebugEnabled()) {
                          repairLogger.debug(m_whoami + "repairing " + CoreUtils.hsIdToString(entry.getKey()) +
                                  ". Max seen " + TxnEgo.txnIdToString(entry.getValue().m_maxSpHandleSeen) + ". Repairing with " +
                                  TxnEgo.txnIdToString(li.getHandle()));
                      }
                      needsRepair.add(entry.getKey());
                  }
              }
              if (!needsRepair.isEmpty()) {
                  if (repairLogger.isDebugEnabled()) {
                      repairLogger.debug(m_whoami + "repairing: " + CoreUtils.hsIdCollectionToString(needsRepair) +
                              " with message: " + li.getPayload());
                  }
                  m_mailbox.repairReplicasWith(needsRepair, li.getPayload());
              }
          }
          if (repairLogger.isDebugEnabled()) {
              repairLogger.debug(m_whoami + "finished queuing " + queued + " replica repair messages.");
          }
  
          m_promotionResult.set(new RepairResult(m_maxSeenTxnId));
      }