[ https://issues.apache.org/jira/browse/LUCENE-6369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Adrien Grand updated LUCENE-6369: --------------------------------- Attachment: LUCENE-6369.patch Here is a patch: - queries wrapping Term instances (TermQuery, PhraseQuery, MultiPhraseQuery, CommonTermsQuery) now perform a defensive copy of the provided term - mutable queries (BooleanQuery, ConstantScoreQuery, DisjunctionMaxQuery, FilteredQuery, ...) now clone deeply - filters (QueryWrapperFilter and some test impls) implement equals/hashcode/clone as expected - added eviction error detection to the query cache and made the test query cache smaller so that having evictions running is more likely When merging to 5.x I would add migration notes to explain that custom filters need to implement equals/hashcode/clone correctly now that Filter extends Query. > 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