From c715623936babb4e836110b42f31f1491d35f344 Mon Sep 17 00:00:00 2001 From: Michael McCandless Date: Wed, 10 Nov 2010 11:23:00 +0000 Subject: [PATCH] LUCENE-2576: fix one case of intermittent failure (unclosed files when using PreFlex codec) git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1033417 13f79535-47bb-0310-9956-ffa450edef68 --- .../index/codecs/preflex/PreFlexFields.java | 68 +++++++++++-------- 1 file changed, 40 insertions(+), 28 deletions(-) diff --git a/lucene/src/java/org/apache/lucene/index/codecs/preflex/PreFlexFields.java b/lucene/src/java/org/apache/lucene/index/codecs/preflex/PreFlexFields.java index 57072463ca0..f3893665c91 100644 --- a/lucene/src/java/org/apache/lucene/index/codecs/preflex/PreFlexFields.java +++ b/lucene/src/java/org/apache/lucene/index/codecs/preflex/PreFlexFields.java @@ -74,39 +74,51 @@ public class PreFlexFields extends FieldsProducer { if (indexDivisor < 0) { indexDivisor = -indexDivisor; } + + boolean success = false; + try { + TermInfosReader r = new TermInfosReader(dir, info.name, fieldInfos, readBufferSize, indexDivisor); + if (indexDivisor == -1) { + tisNoIndex = r; + } else { + tisNoIndex = null; + tis = r; + } + this.readBufferSize = readBufferSize; + this.fieldInfos = fieldInfos; - TermInfosReader r = new TermInfosReader(dir, info.name, fieldInfos, readBufferSize, indexDivisor); - if (indexDivisor == -1) { - tisNoIndex = r; - } else { - tisNoIndex = null; - tis = r; - } - this.readBufferSize = readBufferSize; - this.fieldInfos = fieldInfos; - - // make sure that all index files have been read or are kept open - // so that if an index update removes them we'll still have them - freqStream = dir.openInput(info.name + ".frq", readBufferSize); - boolean anyProx = false; - final int numFields = fieldInfos.size(); - for(int i=0;i