public synchronized void fill(int startOffset, int endOffset, byte fillByte)
			throws IndexOutOfBoundsException, IOException {
		if (readOnly) {
			throw new UnsupportedOperationException("Read-only buffer");
		}
		if (endOffset < startOffset) {
			throw new IllegalArgumentException();
		}
		if (startOffset < 0 || endOffset >= size) {
			throw new IndexOutOfBoundsException();
		}
		byte[] fillData = new byte[dataSpace];
		Arrays.fill(fillData, fillByte);
		int index = startOffset / dataSpace;
		int bufferDataOffset = startOffset % dataSpace;
		int len = endOffset - startOffset + 1;

		if (useXORMask) {
			xorData = new byte[dataSpace];
		}
		try {
			while (len > 0) {
				int n = putBytes(index++, bufferDataOffset, fillData, 0, len);
				len -= n;
				bufferDataOffset = 0;
			}
		}
		finally {
			xorData = null;
		}
	}
Fill the buffer over the specified range with a byte value.
@param startOffset starting offset, inclusive
@param endOffset ending offset, inclusive
@param fillByte byte value
@throws IndexOutOfBoundsException if an invalid offsets are provided
or the end of buffer was encountered while storing the data.
@throws IOException thrown if an IO error occurs
Ghidra/Framework/DB/src/main/java/db/ChainedBuffer.java