if (MAX_MAPPED_MEMORY > 0) {
utilizeMemory(range.length());
}
mbb = mapWithSeveralAttempts(file.getPath(), fc, mode, range.position(), range.length());
// more "safe" variant, in Java-32, than fc.map(mode, range.position(), range.length());
mbb.order(byteOrder);
if (CACHE_MAPPINGS) {
br = UNSAFE_UNMAP_ON_EXCEEDING_MAX_MAPPED_MEMORY ?
new UnmappableRangeWeakReference(mbb, fileIndex, file.getPath(), range, reaped) :
new RangeWeakReference<ByteBuffer>(mbb, fileIndex, file.getPath(), range, reaped);
mappingCache.put(range, br);