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

Yonik Seeley commented on LUCENE-6369:
--------------------------------------

What about a new deepClone() method that makes it more explicit?
Then other code (including rewrite()) can still use the shallow clone, and it 
will be OK since the caching code will call deepClone anyway?

> Make queries more defensive and clone deeply
> --------------------------------------------
>
>                 Key: LUCENE-6369
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6369
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Adrien Grand
>            Assignee: Adrien Grand
>             Fix For: 5.1
>
>         Attachments: LUCENE-6369.patch
>
>
> It is very important for the query cache that queries be either immutable or 
> clone deeply so that they cannot change after having been put into the cache.
> There are three issues that need to be addressed:
>  - mutable queries such as boolean or phrase queries do not clone deeply
>  - queries that wrap mutable objects such as TermQuery's term
>  - filters inherit Query's default clone impl which is not enough in most 
> cases



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to