Skip to content

Commit 5890085

Browse files
committed
rebase
1 parent 70c6260 commit 5890085

2 files changed

Lines changed: 16 additions & 30 deletions

File tree

lucene/codecs/src/java/org/apache/lucene/codecs/memory/FSTTermsReader.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,16 @@ public FSTTermsReader(SegmentReadState state, PostingsReaderBase postingsReader)
8181
state.segmentInfo.name, state.segmentSuffix, FSTTermsWriter.TERMS_DATA_EXTENSION);
8282

8383
this.postingsReader = postingsReader;
84-
this.fstTermsInput =
85-
state.directory.openInput(
86-
termsFileName, state.context.withHints(FileTypeHint.DATA, PreloadHint.INSTANCE));
8784

8885
IndexInput metaIn = null, dataIn = null;
8986

9087
try {
91-
metaIn = state.directory.openInput(termsMetaFileName, IOContext.LOAD);
92-
dataIn = state.directory.openInput(termsDataFileName, IOContext.LOAD);
88+
metaIn =
89+
state.directory.openInput(
90+
termsMetaFileName, state.context.withHints(FileTypeHint.DATA, PreloadHint.INSTANCE));
91+
dataIn =
92+
state.directory.openInput(
93+
termsDataFileName, state.context.withHints(FileTypeHint.DATA, PreloadHint.INSTANCE));
9394

9495
verifyInput(state, metaIn);
9596
verifyInput(state, dataIn);
@@ -118,14 +119,9 @@ public FSTTermsReader(SegmentReadState state, PostingsReaderBase postingsReader)
118119
}
119120
this.fstMetaInput = metaIn;
120121
this.fstDataInput = dataIn;
121-
success = true;
122122
} catch (Throwable t) {
123-
IOUtils.closeWhileSuppressingExceptions(t, in);
123+
IOUtils.closeWhileSuppressingExceptions(t, metaIn, dataIn);
124124
throw t;
125-
} finally {
126-
if (success == false) {
127-
IOUtils.closeWhileHandlingException(metaIn, dataIn);
128-
}
129125
}
130126
}
131127

@@ -220,7 +216,10 @@ final class TermsReader extends Terms {
220216
this.sumDocFreq = sumDocFreq;
221217
this.docCount = docCount;
222218
FSTTermOutputs outputs = new FSTTermOutputs(fieldInfo);
223-
this.dict = new FST<>(FST.readMetadata(metaIn, outputs), dataIn, offHeapFSTStore);
219+
final var fstMetadata = FST.readMetadata(metaIn, outputs);
220+
OffHeapFSTStore offHeapFSTStore =
221+
new OffHeapFSTStore(dataIn, dataIn.getFilePointer(), fstMetadata);
222+
this.dict = FST.fromFSTReader(fstMetadata, offHeapFSTStore);
224223
dataIn.skipBytes(offHeapFSTStore.size());
225224
}
226225

lucene/codecs/src/java/org/apache/lucene/codecs/memory/FSTTermsWriter.java

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,6 @@ public FSTTermsWriter(SegmentWriteState state, PostingsWriterBase postingsWriter
136136
this.maxDoc = state.segmentInfo.maxDoc();
137137

138138
IndexOutput metaOut = null, dataOut = null;
139-
boolean success = false;
140139
try {
141140
metaOut = state.directory.createOutput(termsMetaFileName, state.context);
142141
dataOut = state.directory.createOutput(termsDataFileName, state.context);
@@ -158,15 +157,9 @@ public FSTTermsWriter(SegmentWriteState state, PostingsWriterBase postingsWriter
158157
this.postingsWriter.init(metaOut, state);
159158
this.metaOut = metaOut;
160159
this.dataOut = dataOut;
161-
success = true;
162160
} catch (Throwable t) {
163-
IOUtils.closeWhileSuppressingExceptions(t, out);
161+
IOUtils.closeWhileSuppressingExceptions(t, metaOut, dataOut);
164162
throw t;
165-
} finally {
166-
if (!success) {
167-
IOUtils.closeWhileHandlingException(metaOut, dataOut);
168-
}
169-
this.postingsWriter.init(out, state);
170163
}
171164
}
172165

@@ -212,9 +205,9 @@ public void write(Fields fields, NormsProducer norms) throws IOException {
212205
public void close() throws IOException {
213206
if (metaOut != null) {
214207
assert dataOut != null;
215-
boolean success = false;
216-
try {
217-
// write field summary
208+
try (IndexOutput _ = metaOut;
209+
IndexOutput __ = dataOut;
210+
postingsWriter) { // write field summary
218211
final long dirStart = metaOut.getFilePointer();
219212

220213
metaOut.writeVInt(fields.size());
@@ -226,18 +219,12 @@ public void close() throws IOException {
226219
}
227220
metaOut.writeVLong(field.sumDocFreq);
228221
metaOut.writeVInt(field.docCount);
229-
field.dict.saveMetadata(metaOut);
222+
field.dict.getMetadata().save(metaOut);
230223
}
231224
writeTrailer(metaOut, dirStart);
232225
CodecUtil.writeFooter(metaOut);
233226
CodecUtil.writeFooter(dataOut);
234-
success = true;
235227
} finally {
236-
if (success) {
237-
IOUtils.close(metaOut, dataOut, postingsWriter);
238-
} else {
239-
IOUtils.closeWhileHandlingException(metaOut, dataOut, postingsWriter);
240-
}
241228
metaOut = null;
242229
dataOut = null;
243230
}

0 commit comments

Comments
 (0)