You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Robert Muir (JIRA)" <ji...@apache.org> on 2015/03/02 13:27:04 UTC

[jira] [Commented] (LUCENE-6321) Make oal.index.Term more defensive

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

Robert Muir commented on LUCENE-6321:
-------------------------------------

I dont think its commonly a problem.

Moreover, changing this is might be a big performance trap, because lots of code is built around the fact it doesnt copy. 

Seems like some clone() or similar must be broken. The query cache should be calling clone() when it caches.

> Make oal.index.Term more defensive
> ----------------------------------
>
>                 Key: LUCENE-6321
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6321
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Adrien Grand
>            Assignee: Adrien Grand
>            Priority: Minor
>
> oal.index.Term has a Term(String field, BytesRef termBytes) constructor. Even though it warns that the term bytes should not be reused, I'm wondering that we should make it more defensive.
> {noformat}
>    * <p>WARNING: the provided BytesRef is not copied, but used directly.
>    * Therefore the bytes should not be modified after construction, for
>    * example, you should clone a copy by {@link BytesRef#deepCopyOf}
>    * rather than pass reused bytes from a TermsEnum.
> {noformat} 
> For example if you have term queries in your query cache and they are modified in-place, it would have very bad consequences and would be hard to diagnose.



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

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