[ 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