docs: private void resetStateInRejoinOrRecover(long initialSequenceNumber, boolean isRejoin) {
          if (isRejoin) {
              if (!m_gapTracker.isEmpty()) {
                  m_lastReleasedSeqNo = Math.max(m_lastReleasedSeqNo, m_gapTracker.getFirstSeqNo() - 1);
              }
          } else {
              m_lastReleasedSeqNo = Math.max(m_lastReleasedSeqNo, initialSequenceNumber);
          }
          // Rejoin or recovery should be on a transaction boundary (except maybe in a gap situation)
          m_committedSeqNo = m_lastReleasedSeqNo;
          m_firstUnpolledSeqNo =  m_lastReleasedSeqNo + 1;
          m_tuplesPending.set(m_gapTracker.sizeInSequence());
      }