void (final byte[] source, final int offsetInArray, final int offsetInPage, final int length) { lockPageForWrite(); try { checkPageIsValidForAccess(); final ByteBuffer buf = data.duplicate() .order(data.order()); buf.position(offsetInPage); buf.put(source, offsetInArray, length); regionModified(offsetInPage, length); } finally { unlockPageForWrite(); } }