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

Uwe Schindler commented on LUCENE-2315:
---------------------------------------

bq. How can AttributeSource be final?

This was just a comment about the class, but its not possible because it is 
extended by TokenStreams or similar classes - but the implementation of methods 
should not be alterable. So *all* methods should be final, at least all methods 
that access/modify the private maps.

A correct plan for "own implementations of AttributeSource" would be to create 
an abstract AttributeSource base class that defines the behaviour and all impls 
in the current AttributeSource are final. Because there may be other 
implementations that work without maps or have a hardcoded number of attributes 
with optimized implementations.

> AttributeSource's methods for accessing attributes should be final, else its 
> easy to corrupt the internal states
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-2315
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2315
>             Project: Lucene - Java
>          Issue Type: Bug
>    Affects Versions: 2.9, 2.9.1, 2.9.2, 3.0, 3.0.1
>            Reporter: Uwe Schindler
>            Priority: Minor
>             Fix For: 3.1
>
>
> The methods that operate and modify the internal maps of AttributeSource 
> should be final, which is a backwards break. But anybody that overrides such 
> methods simply creates a buggy AS either case.
> I want to makeall impls final (in general the class should be final at all, 
> but it is made for extension in TokenStream). So its important that the 
> implementations are final!

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to