docs: private void fillBuffer(int minNeededBytes) throws IOException {
      int lengthToReallyRead = Math.min(BUF_SIZE, Math.max(super.available(), minNeededBytes));
      end = super.read(buf, 0, lengthToReallyRead);
      pos = 0;
    }