lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] [Updated] (SOLR-3424) PhoneticFilterFactory threadsafety bug
Date Tue, 01 May 2012 07:45:46 GMT


Uwe Schindler updated SOLR-3424:

    Attachment: SOLR-3424_PhoneticFilterFactory_threadsafety_bug.patch

Attached is a patch that fixes the initialization bug and improves the reflection code.

*One thing that came into my mind when I looked at the code of PhoneticFilter:* I did not
find out if Encoders are threadsafe or not. If they aren't or we are not sure (the documentation
states nothing), we should create the Encoder class instance in the TokenStream create() method.
TokenStreams itsself are only used per thread (iterator pattern), and the Analyzer reuse ensures
that we have a separate instance for each thread.
> PhoneticFilterFactory threadsafety bug
> --------------------------------------
>                 Key: SOLR-3424
>                 URL:
>             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,
> 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:!default.jspa
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message