public override void Flush(SegmentWriteState state) { int numDocs = state.SegmentInfo.DocCount; if (numDocs > 0) { // It's possible that all documents seen in this segment // hit non-aborting exceptions, in which case we will // not have yet init'd the FieldsWriter: InitFieldsWriter(state.Context); Fill(numDocs); } if (fieldsWriter != null) { bool success = false; try { fieldsWriter.Finish(state.FieldInfos, numDocs); success = true; } finally { if (success) { IOUtils.Dispose(fieldsWriter); } else { IOUtils.DisposeWhileHandlingException(fieldsWriter); } } } }
public override void Finish(FieldInfos fis, int numDocs) { Debug.Assert(docStatus == (numDocs > 0 ? Status.FINISHED : Status.UNDEFINED)); @in.Finish(fis, numDocs); Debug.Assert(fieldCount == 0); Debug.Assert(numDocs == numWritten); }