David Smiley commented on SOLR-9524:

RE computeIfAbsent and IOException:   I recent reviewed some code and gave 
feedback on an issue pertaining to this (I can't seen to find right it now).  
The code on whatever issue it was could have theoretically used computeIfAbsent 
and would thus have been much nicer were it not for the IOException.  So we 
couldn't use it; _what a pain, sigh..._.  If we want to use it here too (were 
it not for IOException) we might want to add a utility to make this easy so 
that the semantics of what we're doing is clear.  computeIfAbsent is beautiful 
when you can use it.

> SolrIndexSearcher.getIndexFingerprint uses dubious sunchronization
> ------------------------------------------------------------------
>                 Key: SOLR-9524
>                 URL: https://issues.apache.org/jira/browse/SOLR-9524
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: 6.3
>            Reporter: Mike Drob
>         Attachments: SOLR-9524.patch
> In SOLR-9310 we added more code that does some fingerprint caching in 
> SolrIndexSearcher. However, the synchronization looks like it could be made 
> more efficient and may have issues with correctness.
> https://github.com/apache/lucene-solr/blob/branch_6x/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java#L2371-L2385
> Some of the issues:
> * Double checked locking needs use of volatile variables to ensure proper 
> memory semantics.
> * sync on a ConcurrentHashMap is usually a code smell

This message was sent by Atlassian JIRA

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

Reply via email to