You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Tomás Fernández Löbbe (JIRA)" <ji...@apache.org> on 2014/12/18 00:57:13 UTC

[jira] [Assigned] (SOLR-6864) Support registering searcher listeners in SolrCoreAware.inform(SolrCore) method

     [ https://issues.apache.org/jira/browse/SOLR-6864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tomás Fernández Löbbe reassigned SOLR-6864:
-------------------------------------------

    Assignee: Tomás Fernández Löbbe

> Support registering searcher listeners in SolrCoreAware.inform(SolrCore) method
> -------------------------------------------------------------------------------
>
>                 Key: SOLR-6864
>                 URL: https://issues.apache.org/jira/browse/SOLR-6864
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 5.0, Trunk
>            Reporter: Tomás Fernández Löbbe
>            Assignee: Tomás Fernández Löbbe
>         Attachments: SOLR-6864.patch
>
>
> I'm marking this Jira as Bug because we already have components that do this (SuggestComponent and SpellcheckComponent), however, listeners registered at this stage not always work.
> From https://issues.apache.org/jira/browse/SOLR-6845?focusedCommentId=14250350&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14250350
> {quote}
> Trying to add some unit tests to this feature I found another issue. SuggestComponent and SpellcheckComponent rely on a {{firstSearcherListener}} to load (and in this case, also build) some structures. These firstSearcherListeners are registered on {{SolrCoreAware.inform()}}, however the first searcher listener task is only added to the queue of warming tasks if there is at least one listener registered at the time of the first searcher creation (before SolrCoreAware.inform() is ever called). See 
> {code:title=SolrCore.java}
>         if (currSearcher == null && firstSearcherListeners.size() > 0) {
>           future = searcherExecutor.submit(new Callable() {
>             @Override
>             public Object call() throws Exception {
>               try {
>                 for (SolrEventListener listener : firstSearcherListeners) {
>                   listener.newSearcher(newSearcher, null);
>                 }
>               } catch (Throwable e) {
>                 SolrException.log(log, null, e);
>                 if (e instanceof Error) {
>                   throw (Error) e;
>                 }
>               }
>               return null;
>             }
>           });
>         }
> {code}
> I'll create a new Jira for this
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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