public override void Dispose()
{
if (_output == null) return;
IOException ioe = null;
try
{
// write field summary
var dirStart = _output.FilePointer;
_output.WriteVInt(_fields.Count);
foreach (var field in _fields)
{
_output.WriteVInt(field.FieldInfo.Number);
_output.WriteVLong(field.NumTerms);
if (field.FieldInfo.FieldIndexOptions != IndexOptions.DOCS_ONLY)
{
_output.WriteVLong(field.SumTotalTermFreq);
}
_output.WriteVLong(field.SumDocFreq);
_output.WriteVInt(field.DocCount);
_output.WriteVInt(field.LongsSize);
field.Dict.Save(_output);
}
WriteTrailer(_output, dirStart);
CodecUtil.WriteFooter(_output);
}
catch (IOException ioe2)
{
ioe = ioe2;
}
finally
{
IOUtils.CloseWhileHandlingException(ioe, _output, _postingsWriter);
_output = null;
}
}