[
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: [email protected]
For additional commands, e-mail: [email protected]