// Determine that when the query lists are commented out of both new and // first searchers in the config, we don't throw an NPE @Test public void testSearcherEvents() throws Exception { SolrCore core = h.getCore(); SolrEventListener newSearcherListener = core.newSearcherListeners.get(0); assertTrue( "Not an instance of QuerySenderListener", newSearcherListener instanceof QuerySenderListener); QuerySenderListener qsl = (QuerySenderListener) newSearcherListener; RefCounted<SolrIndexSearcher> currentSearcherRef = core.getSearcher(); SolrIndexSearcher currentSearcher = currentSearcherRef.get(); SolrIndexSearcher dummy = null; qsl.newSearcher(currentSearcher, dummy); // test first Searcher (since param is null) MockQuerySenderListenerReqHandler mock = (MockQuerySenderListenerReqHandler) core.getRequestHandler("mock"); assertNotNull("Mock is null", mock); assertNull("Req (firstsearcher) is not null", mock.req); SolrIndexSearcher newSearcher = new SolrIndexSearcher( core, core.getNewIndexDir(), core.getLatestSchema(), core.getSolrConfig().indexConfig, "testQuerySenderNoQuery", false, core.getDirectoryFactory()); qsl.newSearcher(newSearcher, currentSearcher); // get newSearcher. assertNull("Req (newsearcher) is not null", mock.req); newSearcher.close(); currentSearcherRef.decref(); }