docs: public final void updateTotal(int oldSizeInBytes, int newSizeInBytes) throws SevereMessageStoreException
      {
          boolean doCallback = false;
  
          synchronized(this)
          {
              // We're only replacing an old size estimation
              // with a new one so we do not need to change
              // or inspect the count total and watermark
              
              // Check whether we were between our limits before
              // before this update.
              boolean wasBelowHighLimit = (_countTotalBytes < _watermarkBytesHigh);
              boolean wasAboveLowLimit  = (_countTotalBytes >= _watermarkBytesLow);
  
              // Update our count to the new value by adding the
              // difference between the old and new sizes
              _countTotalBytes = _countTotalBytes + (newSizeInBytes - oldSizeInBytes);
  
              if ((wasBelowHighLimit && _countTotalBytes >= _watermarkBytesHigh)  // Was below the HIGH watermark but now isn't
                  || (wasAboveLowLimit && _countTotalBytes < _watermarkBytesLow)) // OR was above LOW watermark but now isn't
              {
                  doCallback = true;
              }
          }
  
          if (doCallback)
          {
              _owningStreamLink.eventWatermarkBreached();
          }
      }