[ https://issues.apache.org/jira/browse/LUCENE-3377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13086259#comment-13086259 ]
Michael McCandless commented on LUCENE-3377: -------------------------------------------- I think we should record which IR instance the DTO.TermOrdsIterator was created on, and then don't reuse the passed instance if it came from a different IR? Actually we should probably just hold onto & compare the IR.getCoreCacheKey(). > TermOrdsIterator#lookup throws ArrayIndexOutOfBoundsException > ------------------------------------------------------------- > > Key: LUCENE-3377 > URL: https://issues.apache.org/jira/browse/LUCENE-3377 > Project: Lucene - Java > Issue Type: Bug > Affects Versions: 4.0 > Reporter: Martijn van Groningen > Priority: Minor > > TermOrdsIterator's lookup method can throw an ArrayIndexOutOfBoundsException > if reuse argument is reused acros segments. > Example collector: > {code} > private DocTermOrds.TermOrdsIterator reuse = null; > public void collect(int doc) throws IOException { > ... > reuse = docTermOrds.lookup(doc, reuse); > ... > } > public void setNextReader(IndexReader.AtomicReaderContext context) throws > IOException { > docTermOrds = FieldCache.DEFAULT.getDocTermOrds(context.reader, field); > .... > } > {code} > If reuse argument is always null exception doesn't occur. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org