diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt index f025d84b589..82ad5ae544f 100644 --- a/lucene/CHANGES.txt +++ b/lucene/CHANGES.txt @@ -58,6 +58,11 @@ New Features String is too restrictive (Robert Muir, Shai Erera, Mike McCandless) +Bug Fixes + +* LUCENE-4998: Fixed a few places to pass IOContext.READONCE instead + of IOContext.READ (Shikhar Bhushan via Mike McCandless) + Changes in backwards compatibility policy * LUCENE-5204: Directory doesn't have default implementations for diff --git a/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java b/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java index d0f7bed509e..b22a076153d 100644 --- a/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java +++ b/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java @@ -410,7 +410,7 @@ public class CheckIndex { // note: we only read the format byte (required preamble) here! IndexInput input = null; try { - input = dir.openInput(segmentsFileName, IOContext.DEFAULT); + input = dir.openInput(segmentsFileName, IOContext.READONCE); } catch (Throwable t) { msg(infoStream, "ERROR: could not open segments file in directory"); if (infoStream != null) diff --git a/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java b/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java index e870166a5a9..11f912c7e7f 100644 --- a/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java +++ b/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java @@ -58,7 +58,7 @@ public final class SegmentReader extends AtomicReader { try { if (si.hasDeletions()) { // NOTE: the bitvector is stored using the regular directory, not cfs - liveDocs = si.info.getCodec().liveDocsFormat().readLiveDocs(directory(), si, new IOContext(IOContext.READ, true)); + liveDocs = si.info.getCodec().liveDocsFormat().readLiveDocs(directory(), si, IOContext.READONCE); } else { assert si.getDelCount() == 0; liveDocs = null; @@ -80,9 +80,9 @@ public final class SegmentReader extends AtomicReader { /** Create new SegmentReader sharing core from a previous * SegmentReader and loading new live docs from a new * deletes file. Used by openIfChanged. */ - SegmentReader(SegmentInfoPerCommit si, SegmentCoreReaders core, IOContext context) throws IOException { + SegmentReader(SegmentInfoPerCommit si, SegmentCoreReaders core) throws IOException { this(si, core, - si.info.getCodec().liveDocsFormat().readLiveDocs(si.info.dir, si, context), + si.info.getCodec().liveDocsFormat().readLiveDocs(si.info.dir, si, IOContext.READONCE), si.info.getDocCount() - si.getDelCount()); } diff --git a/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java b/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java index 7e4316a67ac..493d741e8fb 100644 --- a/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java +++ b/lucene/core/src/java/org/apache/lucene/index/StandardDirectoryReader.java @@ -173,7 +173,7 @@ final class StandardDirectoryReader extends DirectoryReader { // Steal the ref returned by SegmentReader ctor: assert infos.info(i).info.dir == newReaders[i].getSegmentInfo().info.dir; assert infos.info(i).hasDeletions(); - newReaders[i] = new SegmentReader(infos.info(i), newReaders[i].core, IOContext.READ); + newReaders[i] = new SegmentReader(infos.info(i), newReaders[i].core); } } success = true; diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java index 4cb87e6762c..70db465725e 100644 --- a/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java +++ b/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java @@ -572,7 +572,7 @@ public abstract class BasePostingsFormatTestCase extends LuceneTestCase { currentFieldInfos = newFieldInfos; - SegmentReadState readState = new SegmentReadState(dir, segmentInfo, newFieldInfos, IOContext.DEFAULT); + SegmentReadState readState = new SegmentReadState(dir, segmentInfo, newFieldInfos, IOContext.READ); return codec.postingsFormat().fieldsProducer(readState); }