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