private void fillWithZeros(final long from,
                             final long length) throws IOException {
    final byte[] zeroes = new byte[MAX_FILLER_SIZE];

    long offset = from;
    long remaining = length;
    while (remaining > 0) {
      final int toFill = (int)Math.min(remaining, MAX_FILLER_SIZE);
      if (toFill <= 0) {
        throw new AssertionError(
          "Bug: toFill(=" + toFill + ") -- must be positive. " +
          "Details: from: " + from + ", length: " + length + " -> offset: " + offset + ", remaining: " + remaining);
      }

      put(offset, zeroes, 0, toFill);

      remaining -= toFill;
      offset += toFill;
    }
  }
private void fillWithZeros(final long from,
                             final long length)