[
https://issues.apache.org/jira/browse/SOLR-3424?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Uwe Schindler updated SOLR-3424:
--------------------------------
Attachment: SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch
Hi, I looked again at the code and found the following improvement, attached as
new patch:
The reflection based-method lookup should be done in the initialization. The
pointer to the method is then saved in a instance field, so the getEncoder()
method only needs to invoke. This removes more than half of the reflection cost.
The pointer to the method is null, if no maxLength is set.
I also did some minor cleanups in Exception handling.
> PhoneticFilterFactory threadsafety bug
> --------------------------------------
>
> Key: SOLR-3424
> URL: https://issues.apache.org/jira/browse/SOLR-3424
> Project: Solr
> Issue Type: Bug
> Components: Schema and Analysis
> Affects Versions: 3.6, 4.0
> Reporter: David Smiley
> Assignee: David Smiley
> Priority: Minor
> Fix For: 4.0
>
> Attachments: SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch,
> SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch,
> SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch,
> SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch,
> SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch,
> SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch
>
>
> PhoneticFilterFactory has a static HashMap registry mapping an encoder name
> to an implementation. There is a ReentrantLock used when the map is modified
> (when the encoder config specifies a class name). However, this map, which
> can be accessed by multiple indexing threads, isn't guarded on any of the
> reads, which isn't just the common path but also the error messages which
> dump the registry into the error message.
> I realize the likelihood of a problem is extremely slim, but a bug's a bug.
--
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]