Tom Switzer created SOLR-3628:
---------------------------------

             Summary: SolrDocument uses user-provided collections unsafely
                 Key: SOLR-3628
                 URL: https://issues.apache.org/jira/browse/SOLR-3628
             Project: Solr
          Issue Type: Bug
          Components: clients - java
    Affects Versions: 4.0-ALPHA, 3.6
         Environment: Mac OS X 10.7.4, Java 6
            Reporter: Tom Switzer
         Attachments: solrdoc-ro-list-bug.patch

Adding a RO Collection as the value of a field (ie. SolrDocument or 
SolrInputField) will result in an UnsupportedOperationException later on when 
adding more values to that field.

This happens because no defensive copy of collections are made. Instead, if a 
collection is given first, then it becomes the backing collection for the 
field. This can cause problems if the collection is modified after the fact or 
if a read-only collection is given (eg. Collection.unmodifiableList(...)).

It can be reproduced with:

SolrDocument doc = new SolrDocument()
doc.addField("v", Collections.unmodifiableList(new ArrayList<Object>()))
doc.addField("v", "a")

I've created a patch that includes a fix and a test with, essentially, the 
above. The patch just ensures that SolrDocument and SolrInputField always use a 
Collection they created as the value, rather than relying on what was given to 
them.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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

Reply via email to