text: public Bits readLiveDocs(Directory dir, SegmentCommitInfo info, IOContext context) throws IOException {assert info.hasDeletions();BytesRefBuilder scratch = new BytesRefBuilder();CharsRefBuilder scratchUTF16 = new CharsRefBuilder();String fileName = IndexFileNames.fileNameFromGeneration(info.info.name, LIVEDOCS_EXTENSION, info.getDelGen());ChecksumIndexInput in = null;boolean success = false;try {in = dir.openChecksumInput(fileName, context);SimpleTextUtil.readLine(in, scratch);assert StringHelper.startsWith(scratch.get(), SIZE);int size = parseIntAt(scratch.get(), SIZE.length, scratchUTF16);BitSet bits = new BitSet(size);SimpleTextUtil.readLine(in, scratch);while (!scratch.get().equals(END)) {assert StringHelper.startsWith(scratch.get(), DOC);int docid = parseIntAt(scratch.get(), DOC.length, scratchUTF16);bits.set(docid);SimpleTextUtil.readLine(in, scratch);}SimpleTextUtil.checkFooter(in);success = true;return new SimpleTextBits(bits, size);} finally {if (success) {IOUtils.close(in);} else {IOUtils.closeWhileHandlingException(in);}}}