[
https://issues.apache.org/jira/browse/LUCENE-3656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Uwe Schindler updated LUCENE-3656:
----------------------------------
Attachment: LUCENE-3656.patch
Simple patch.
I had to add some additional synchronization in the notifier, as the iterators
are not thread-safe. Collections.synchronized*() returns a set, thats synced on
itsself, so you can for more complex changes like iteration, sync on the result
(the Set itsself), see for complete explanation:
[http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Collections.html#synchronizedSet(java.util.Set)]
> IndexReader's add/removeCloseListener should not use ConcurrentHashMap, just
> a synchronized set
> -----------------------------------------------------------------------------------------------
>
> Key: LUCENE-3656
> URL: https://issues.apache.org/jira/browse/LUCENE-3656
> Project: Lucene - Java
> Issue Type: Bug
> Components: core/index
> Affects Versions: 3.5, 4.0
> Reporter: Uwe Schindler
> Assignee: Uwe Schindler
> Priority: Minor
> Labels: curiosity
> Attachments: LUCENE-3656.patch
>
>
> The use-case for ConcurrentHashMap is when many threads are reading and less
> writing to the structure. Here this is just funny: The only reader is
> close(). Here you can just use a synchronized HashSet. The complexity of CHM
> is making this just a joke :-)
--
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: [email protected]
For additional commands, e-mail: [email protected]