Vitaly Funstein created LUCENE-5931:
---------------------------------------
Summary: DirectoryReader.openIfChanged(oldReader, commit)
incorrectly assumes given commit points has deletes/field updates
Key: LUCENE-5931
URL: https://issues.apache.org/jira/browse/LUCENE-5931
Project: Lucene - Core
Issue Type: Bug
Components: core/index
Affects Versions: 4.6.1
Reporter: Vitaly Funstein
Priority: Critical
{{StandardDirectoryReader}} assumes that the segments from commit point have
deletes, when they may not, yet the original SegmentReader for the segment that
we are trying to reuse does. This is evident when running attached JUnit test
case with asserts enabled (default):
{noformat}
java.lang.AssertionError
at
org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:188)
at
org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:326)
at
org.apache.lucene.index.StandardDirectoryReader$2.doBody(StandardDirectoryReader.java:320)
at
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:702)
at
org.apache.lucene.index.StandardDirectoryReader.doOpenFromCommit(StandardDirectoryReader.java:315)
at
org.apache.lucene.index.StandardDirectoryReader.doOpenNoWriter(StandardDirectoryReader.java:311)
at
org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:262)
at
org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:183)
{noformat}
or, if asserts are disabled then it falls through into NPE:
{noformat}
java.lang.NullPointerException
at java.io.File.<init>(File.java:305)
at
org.apache.lucene.store.NIOFSDirectory.openInput(NIOFSDirectory.java:80)
at
org.apache.lucene.codecs.lucene40.BitVector.<init>(BitVector.java:327)
at
org.apache.lucene.codecs.lucene40.Lucene40LiveDocsFormat.readLiveDocs(Lucene40LiveDocsFormat.java:90)
at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:131)
at
org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:194)
at
org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:326)
at
org.apache.lucene.index.StandardDirectoryReader$2.doBody(StandardDirectoryReader.java:320)
at
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:702)
at
org.apache.lucene.index.StandardDirectoryReader.doOpenFromCommit(StandardDirectoryReader.java:315)
at
org.apache.lucene.index.StandardDirectoryReader.doOpenNoWriter(StandardDirectoryReader.java:311)
at
org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:262)
at
org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:183)
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]