docs: @VisibleForTesting
    synchronized Bucket<V> getBucket(int bucketedSize) {
      // get an existing bucket
      Bucket<V> bucket = mBuckets.get(bucketedSize);
      if (bucket != null || !mAllowNewBuckets) {
        return bucket;
      }
  
      // create a new bucket
      if (FLog.isLoggable(FLog.VERBOSE)) {
        FLog.v(TAG, "creating new bucket %s", bucketedSize);
      }
      Bucket<V> newBucket = newBucket(bucketedSize);
      mBuckets.put(bucketedSize, newBucket);
      return newBucket;
    }