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

Uwe Schindler commented on LUCENE-5640:
---------------------------------------

bq. I haven't looked closely here, but why does simplifying Token.java required 
new hairy things like MethodHandle / getConstructorForInterface / etc.?

That's unrelated. This should improve the reflective default AttributeFactory 
(because it no longer uses refection, only initially to look up the instance). 
Whenever addAttribute() has to create a new attribute implementation it can 
create the instance without any overhead, almost as fast as "new 
SomethingImpl()". Before it was using reflection on every call with access 
checks, security manager,... No its doing the reflective access only one time 
and then does a hard-linked invocation using the handle. Its not trick, its 
just Java 7. We were not able to do this before. So this is a general 
improvement,

This is only partly related to Token, its just a general refactoring to have a 
packed attribute for the default attributes. This is just one big patch, sorry.

> Cleanup Token class
> -------------------
>
>                 Key: LUCENE-5640
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5640
>             Project: Lucene - Core
>          Issue Type: Sub-task
>          Components: modules/analysis
>            Reporter: Uwe Schindler
>             Fix For: 4.9, 5.0
>
>         Attachments: LUCENE-5640.patch, LUCENE-5640.patch, LUCENE-5640.patch, 
> LUCENE-5640.patch, LUCENE-5640.patch
>
>
> We should remove code duplication in the Token class:
> - copy constructors
> - reinit() shit
> - non-default clone()
> This is too bugy. Most of the methods can be simply removed. In fact, Token 
> should just look like a clone of all AttributeImpl it implements.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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

Reply via email to