docs: public void handleFragmentResponseMessage(FragmentResponseMessage message)
      {
          TransactionState txn = m_outstandingTxns.get(message.getTxnId());
          // We could already have received the CompleteTransactionMessage from
          // the local site and the transaction is dead, despite FragmentResponses
          // in flight from remote sites.  Drop those on the floor.
          // IZZY: After implementing BorrowTasks, I'm not sure that the above sequence
          // can actually happen any longer, but leaving this and logging it for now.
          // RTB: Didn't we decide early rollback can do this legitimately.
          if (txn != null) {
              SerializableException ex = message.getException();
              if (ex instanceof TransactionRestartException && ((TransactionRestartException)ex).isMisrouted()) {
                  tmLog.debug("MpScheduler received misroute FragmentResponseMessage");
                  ((TransactionRestartException)ex).updateReplicas(m_iv2Masters, m_partitionMasters);
              }
              ((MpTransactionState)txn).offerReceivedFragmentResponse(message);
          }
          else if (tmLog.isDebugEnabled()){
              tmLog.debug("MpScheduler received a FragmentResponseMessage for a null TXN ID: " + message);
          }
      }