I have implemented a custom Lucene directory, and I think I am seeing
Lucene's ConjunctionScorer seek off the end of IndexInput, which I have
implemented to throw an exception.  One example stack trace leading to this
is:

 at org.apache.lucene.index.SegmentTermDocs.skipTo(SegmentTermDocs.java:197)
 at org.apache.lucene.search.TermScorer.advance(TermScorer.java:156)
 at
org.apache.lucene.search.ConjunctionScorer.doNext(ConjunctionScorer.java:99)
 at
org.apache.lucene.search.ConjunctionScorer.<init>(ConjunctionScorer.java:72)
 at
org.apache.lucene.search.ConjunctionScorer.<init>(ConjunctionScorer.java:33)

Upon reading Lucene's own source, I see some evidence that seeking off the
end should be legal, e.g. RAMInputStream has a boolean enforceEOF flag
which is set to false by calls to seek.

I am working to make a small reproducible case, but in the meantime hoping
that somebody has more details about how seek is supposed to be used.

On the 3.x line btw, and testing with multiple versions from 3.2 to 3.6.

Thanks,
Stu

Reply via email to