code: @Override
    public boolean hasExpired(SlotInfo<? extends T> info) {
      long expirationAge = info.getStamp();
      if (expirationAge == 0) {
        long maxDelta = upperBoundMillis - lowerBoundMillis;
        ThreadLocalRandom prng = ThreadLocalRandom.current();
        expirationAge = lowerBoundMillis + Math.abs(prng.nextInt() % maxDelta);
        info.setStamp(expirationAge);
      }
      long age = info.getAgeMillis();
      return age >= expirationAge;
    }
docs: Returns `true`, with uniformly increasing probability, if the
  {@link stormpot.Poolable} represented by the given {@link SlotInfo} is
  older than the lower bound, eventually returning `true` with
  100% certainty when the age of the Poolable is equal to or greater than
  the upper bound.
  
  The uniformity of the random expiration holds regardless of how often a
  Poolable is checked. That is to say, checking a Poolable more times within
  an interval of time, does _not_ increase its chances of being
  declared expired.