@Override public FieldsProducer fieldsProducer(final SegmentReadState state) throws IOException { final PostingsReaderBase postings = new Siren10PostingsReader(state.dir, state.segmentInfo, state.context, state.segmentSuffix, this.getFactory()); boolean success = false; try { final FieldsProducer ret = new BlockTreeTermsReader(state.dir, state.fieldInfos, state.segmentInfo, postings, state.context, state.segmentSuffix, state.termsIndexDivisor); success = true; return ret; } finally { if (!success) { postings.close(); } } }