lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-2315) AttributeSource's methods for accessing attributes should be final, else its easy to corrupt the internal states
Date Sat, 13 Mar 2010 13:31:27 GMT

    [ 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-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message