code: public long nextBackOffMillis() throws IOException {
      // Make sure we have not gone over the maximum elapsed time.
      if (getElapsedTimeMillis() > maxElapsedTimeMillis) {
        return STOP;
      }
      int randomizedInterval =
          getRandomValueFromInterval(randomizationFactor, Math.random(), currentIntervalMillis);
      incrementCurrentInterval();
      return randomizedInterval;
    }
docs: {@inheritDoc}
  
  <p>This method calculates the next back off interval using the formula: randomized_interval =
  retry_interval +/- (randomization_factor * retry_interval)
  
  <p>Subclasses may override if a different algorithm is required.