[ 
https://issues.apache.org/jira/browse/LUCENE-6256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan Ernst updated LUCENE-6256:
-------------------------------
    Attachment: LUCENE-6256.patch

I was reminded that {{nextPosition()}} should be called {{freq()}} times only.  
Having a {{NO_MORE_POSITIONS}} constant doesn't make sense. The case that 
should return -1 is only for when positions do not exist.

This patch removes asserts in the places that should just return -1, and 
updates the javadocs for {{nextPositions()}}.  All tests pass.

> PostingsEnum impls should respect documented behavior when no positions exist
> -----------------------------------------------------------------------------
>
>                 Key: LUCENE-6256
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6256
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Ryan Ernst
>         Attachments: LUCENE-6256.patch
>
>
> {{PostingsEnum.nextPositions}} says that if no positions exist, 
> NO_MORE_POSITIONS will be returned on the first call (actually it refers to 
> DocsEnum.NO_MORE_DOCS, which should be changed since DocsEnum doesn't exist 
> on trunk).  At least one impl (BlockDocsEnum) does {{assert false}} inside 
> {{nextPosition()}}.  This means if you have assertions turned on (e.g. in a 
> test) you get an assertion here, when the behavior should return 
> NO_MORE_POSITIONS.  I'm still going through all the implementations, but I 
> also see {{MultiTermHighlighting}} which returns {{Integer.MAX_VALUE}}.  I 
> think we should clean up all these implementations which have no positions 
> (including maybe the fake scorers that are copied around in a lot of places?) 
> to return NO_MORE_POSITIONS.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to