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

Vamsee Yarlagadda commented on SOLR-6815:
-----------------------------------------

Well thinking about this case more, it looks like may be it is intentional to 
have setValue() simply take the object passed without making a copy of it (as 
an optimization instead of redoing all the work to create a copy) and at the 
same time we have addValue() which basically follows the typical way of creates 
a copy. Thoughts?

> Issue with Collections in field value while indexing a document.
> ----------------------------------------------------------------
>
>                 Key: SOLR-6815
>                 URL: https://issues.apache.org/jira/browse/SOLR-6815
>             Project: Solr
>          Issue Type: Bug
>          Components: clients - java
>    Affects Versions: 4.9
>            Reporter: Kiran Kumar Dontam
>            Priority: Minor
>         Attachments: SolrIndexingTest.java
>
>
> Issue with {{SolrInputDocument.addField()}} method.
> If this method is called for the first time for a field, it will call 
> {{setField}} method, which calls {{SolrInputField.setValue}}.
> Assume that the value is a Collection in this flow. The value's reference is 
> added to the field in the doc. If we add another value to the same field 
> (using {{addField}}), it will be added to the original collection.
> This is incorrect because we are modifying user's original collection.
> This will break in the following cases:
> 1. If the original collection is unmodifiable. This will throw 
> {{UnsupportedOperationException}} while adding 2nd value.
> 2. If the user wants to add the same value (Collection) to different fields, 
> those fields may get corrupted. Adding more values to one fields will add 
> them to other fields as well. (This is how I found the issue).
> One solution:
> In {{SolrInputField.setValue}} we can always create a new Collection 
> (ArrayList) if the incoming value is a Collection.



--
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