[ 
https://issues.apache.org/jira/browse/SOLR-2425?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13006313#comment-13006313
 ] 

Koji Sekiguchi commented on SOLR-2425:
--------------------------------------

bq. At the time, firstSearcherListeners includes SpellChecker's 
firstSearcherListner, registered by procedure 3 above. But if you have no 
<listener event="firstSearcher"/> registered in solrconfig.xml, at the 
procedure 2, searcherExecutor.submit() is never called because 
firstSearcherListeners.size() is zero at the moment.

This was bit misleading.

I think there is a timing issue. Regardless of the existence of <listener 
event="firstSearcher"/> in solrconfig.xml, SpellChecker's firstSearcher 
listener can never be called, because Callable.call() can be called before 
executing
SolrCoreAware.inform().


> firstSearcher Listener of SpellChecker can be never called
> ----------------------------------------------------------
>
>                 Key: SOLR-2425
>                 URL: https://issues.apache.org/jira/browse/SOLR-2425
>             Project: Solr
>          Issue Type: Bug
>          Components: spellchecker
>    Affects Versions: 1.4.1, 3.1, 4.0
>            Reporter: Koji Sekiguchi
>            Priority: Minor
>
> mail thread:
> http://www.lucidimagination.com/search/document/65e73468958faf09/known_problem_firstsearcher_event_of_spellchecker_is_never_called
> firstSearcher Listener of SpellChecker is never called when there is no 
> <listener event="firstSearcher"/> registered in solrconfig.xml.
> The reason is because the sequence of procedures in SolrCore constructor:
> # initListeners();
> # getSearcher(false,false,null); => register (general) firstSearcher listener 
> if it exists
> # call SolrCoreAware.inform(); => register SpellChecker's firstSearcher 
> listener
> After that, Callable.call() is called to execute the firstSearcher event:
> {code}
> if (currSearcher==null && firstSearcherListeners.size() > 0) {
>   future = searcherExecutor.submit(
>           new Callable() {
>             public Object call() throws Exception {
>               try {
>                 for (SolrEventListener listener : firstSearcherListeners) {
>                   listener.newSearcher(newSearcher,null);
>                 }
>               } catch (Throwable e) {
>                 SolrException.logOnce(log,null,e);
>               }
>               return null;
>             }
>           }
>   );
> }
> {code}
> At the time, firstSearcherListeners includes SpellChecker's 
> firstSearcherListner, registered by procedure 3 above. But if you have no 
> <listener event="firstSearcher"/> registered in solrconfig.xml, at the 
> procedure 2, searcherExecutor.submit() is never called because 
> firstSearcherListeners.size() is zero at the moment.

--
This message is automatically generated by JIRA.
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