[ 
https://issues.apache.org/jira/browse/LUCENE-8292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16767061#comment-16767061
 ] 

Simon Willnauer commented on LUCENE-8292:
-----------------------------------------

I do see both points here. [~dsmiley] I hate how trappy this is and [~jpountz] 
I completely agree with you. My suggestions here would be to add an additional 
class TermsEnum that has all methods abstract and BaseTermsEnum that can add 
default impls. FilterTermsEnum then subclasses TermsEnum and does the right 
thing. Other classes that don't need to override stuff like seekExact and 
seek(BytesRef, TermState) / TermState termState() can simply subclass 
BaseTermsEnum and we don't have to duplicate code all over the place. I don't 
think we need to do this in other places were we have the same pattern but in 
this case the traps are significant and we can fix it with a simple class 
in-between?



> Fix FilterLeafReader.FilterTermsEnum to delegate all seekExact methods
> ----------------------------------------------------------------------
>
>                 Key: LUCENE-8292
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8292
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 7.2.1
>            Reporter: Bruno Roustant
>            Priority: Major
>             Fix For: trunk
>
>         Attachments: 
> 0001-Fix-FilterLeafReader.FilterTermsEnum-to-delegate-see.patch, 
> LUCENE-8292.patch
>
>
> FilterLeafReader#FilterTermsEnum wraps another TermsEnum and delegates many 
> methods.
> It misses some seekExact() methods, thus it is not possible to the delegate 
> to override these methods to have specific behavior (unlike the TermsEnum API 
> which allows that).
> The fix is straightforward: simply override these seekExact() methods and 
> delegate.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to