コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
0
 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);
 }