close PerDocConsumer during flush to ensure all files are written in the CFS case

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1144278 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Simon Willnauer 2011-07-08 12:09:32 +00:00
parent ac3f91daa2
commit 74cb0a71bc
1 changed files with 8 additions and 14 deletions

View File

@ -32,6 +32,7 @@ import org.apache.lucene.index.codecs.Codec;
import org.apache.lucene.index.codecs.PerDocConsumer;
import org.apache.lucene.index.codecs.DocValuesConsumer;
import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.IOUtils;
/**
@ -87,6 +88,8 @@ final class DocFieldProcessor extends DocConsumer {
for (DocValuesConsumer consumers : docValues.values()) {
consumers.finish(state.numDocs);
};
// close perDocConsumer during flush to ensure all files are flushed due to PerCodec CFS
IOUtils.closeSafely(true, perDocConsumers.values());
}
@Override
@ -106,13 +109,11 @@ final class DocFieldProcessor extends DocConsumer {
field = next;
}
}
for(PerDocConsumer consumer : perDocConsumers.values()) {
try {
consumer.close(); // TODO add abort to PerDocConsumer!
} catch (IOException e) {
// ignore on abort!
}
try {
IOUtils.closeSafely(true, perDocConsumers.values());
// TODO add abort to PerDocConsumer!
} catch (IOException e) {
// ignore on abort!
}
try {
@ -165,13 +166,6 @@ final class DocFieldProcessor extends DocConsumer {
fieldHash = new DocFieldProcessorPerField[2];
hashMask = 1;
totalFieldCount = 0;
for(PerDocConsumer consumer : perDocConsumers.values()) {
try {
consumer.close();
} catch (IOException e) {
// ignore and continue closing remaining consumers
}
}
perDocConsumers.clear();
docValues.clear();
}