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

Robert Muir commented on LUCENE-3420:
-------------------------------------

{quote}
This silently breaks backward compatibility via reflection, scary...
{quote}

This is not true, there is nothing silent about it. It was listed in the 
backwards compatibility breaks section of 3.1:
{noformat}
  Analyzer and TokenStream base classes now have an assertion in their ctor,
  that check subclasses to be final or at least have final implementations
  of incrementToken(), tokenStream(), and reusableTokenStream().
{noformat}


> assertion derived class modifier from parent class silently breaks backward 
> compatibility
> -----------------------------------------------------------------------------------------
>
>                 Key: LUCENE-3420
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3420
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: core/index
>    Affects Versions: 3.3
>            Reporter: John Wang
>
> after upgrading to lucene 3.1+, I see this in my log:
> java.lang.AssertionError: TokenStream implementation classes or at least 
> their incrementToken() implementation must be final
>         at 
> org.apache.lucene.analysis.TokenStream.assertFinal(TokenStream.java:117)
>         at org.apache.lucene.analysis.TokenStream.<init>(TokenStream.java:92)
> Turns out I derived TokenStream and my class was not declared final.
> This silently breaks backward compatibility via reflection, scary...
> I think doing this sort of check is fine, but throwing an 
> java.lang.AssertionError in this case is too stringent. 
> This is a style check against lucene clients, a error log would be fine, but 
> throwing an Error is too much.
> See constructor implementation for: 
> http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/src/java/org/apache/lucene/analysis/TokenStream.java?view=markup

--
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

Reply via email to