Return-Path: Delivered-To: apmail-lucene-commits-archive@www.apache.org Received: (qmail 73630 invoked from network); 13 Dec 2010 18:57:49 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 13 Dec 2010 18:57:49 -0000 Received: (qmail 96996 invoked by uid 500); 13 Dec 2010 18:57:49 -0000 Mailing-List: contact commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list commits@lucene.apache.org Received: (qmail 96983 invoked by uid 99); 13 Dec 2010 18:57:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Dec 2010 18:57:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Dec 2010 18:57:46 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B2A092388A6C; Mon, 13 Dec 2010 18:57:24 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1045302 - in /lucene/dev/trunk/solr: ./ src/java/org/apache/solr/core/ src/test/org/apache/solr/core/ src/test/test-files/solr/conf/ Date: Mon, 13 Dec 2010 18:57:24 -0000 To: commits@lucene.apache.org From: hossman@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101213185724.B2A092388A6C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: hossman Date: Mon Dec 13 18:57:24 2010 New Revision: 1045302 URL: http://svn.apache.org/viewvc?rev=1045302&view=rev Log: SOLR-2219: stop calling SolrRequestHandler.init twice per instance Modified: lucene/dev/trunk/solr/CHANGES.txt lucene/dev/trunk/solr/src/java/org/apache/solr/core/RequestHandlers.java lucene/dev/trunk/solr/src/test/org/apache/solr/core/MockQuerySenderListenerReqHandler.java lucene/dev/trunk/solr/src/test/org/apache/solr/core/RequestHandlersTest.java lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig.xml Modified: lucene/dev/trunk/solr/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1045302&r1=1045301&r2=1045302&view=diff ============================================================================== --- lucene/dev/trunk/solr/CHANGES.txt (original) +++ lucene/dev/trunk/solr/CHANGES.txt Mon Dec 13 18:57:24 2010 @@ -566,6 +566,9 @@ Bug Fixes * SOLR-2252: When a child entity in nested entities is rootEntity="true", delta-import doesn't work. (koji) +* SOLR-2219: The init() method of every SolrRequestHandler was being + called twice. (ambikeshwar singh and hossman) + Other Changes ---------------------- Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/core/RequestHandlers.java URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/core/RequestHandlers.java?rev=1045302&r1=1045301&r2=1045302&view=diff ============================================================================== --- lucene/dev/trunk/solr/src/java/org/apache/solr/core/RequestHandlers.java (original) +++ lucene/dev/trunk/solr/src/java/org/apache/solr/core/RequestHandlers.java Mon Dec 13 18:57:24 2010 @@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory; import java.net.URL; import java.util.Collections; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -137,7 +138,8 @@ final class RequestHandlers { */ void initHandlersFromConfig(SolrConfig config ){ - Map handlers = new HashMap(); + // use link map so we iterate in the same order + Map handlers = new LinkedHashMap(); for (PluginInfo info : config.getPluginInfos(SolrRequestHandler.class.getName())) { try { SolrRequestHandler requestHandler; @@ -153,11 +155,6 @@ final class RequestHandlers { requestHandler = core.createRequestHandler(info.className); } handlers.put(info,requestHandler); - if (requestHandler instanceof PluginInfoInitialized) { - ((PluginInfoInitialized) requestHandler).init(info); - } else{ - requestHandler.init(info.initArgs); - } SolrRequestHandler old = register(info.name, requestHandler); if(old != null) { log.warn("Multiple requestHandler registered to the same name: " + info.name + " ignoring: " + old.getClass().getName()); @@ -176,8 +173,16 @@ final class RequestHandlers { throw e; } } + + // we've now registered all handlers, time ot init them in the same order for (Map.Entry entry : handlers.entrySet()) { - entry.getValue().init(entry.getKey().initArgs); + PluginInfo info = entry.getKey(); + SolrRequestHandler requestHandler = entry.getValue(); + if (requestHandler instanceof PluginInfoInitialized) { + ((PluginInfoInitialized) requestHandler).init(info); + } else{ + requestHandler.init(info.initArgs); + } } if(get("") == null) register("", get(DEFAULT_HANDLER_NAME)); Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/core/MockQuerySenderListenerReqHandler.java URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/core/MockQuerySenderListenerReqHandler.java?rev=1045302&r1=1045301&r2=1045302&view=diff ============================================================================== --- lucene/dev/trunk/solr/src/test/org/apache/solr/core/MockQuerySenderListenerReqHandler.java (original) +++ lucene/dev/trunk/solr/src/test/org/apache/solr/core/MockQuerySenderListenerReqHandler.java Mon Dec 13 18:57:24 2010 @@ -19,6 +19,9 @@ package org.apache.solr.core; import org.apache.solr.handler.RequestHandlerBase; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; +import org.apache.solr.common.util.NamedList; + +import java.util.concurrent.atomic.AtomicInteger; /** @@ -29,6 +32,13 @@ public class MockQuerySenderListenerReqH public SolrQueryRequest req; public SolrQueryResponse rsp; + AtomicInteger initCounter = new AtomicInteger(0); + + public void init(NamedList args) { + initCounter.incrementAndGet(); + super.init(args); + } + public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throws Exception { this.req = req; this.rsp = rsp; @@ -53,4 +63,11 @@ public class MockQuerySenderListenerReqH String result = null; return result; } + + public NamedList getStatistics() { + NamedList lst = super.getStatistics(); + lst.add("initCount", initCounter.intValue()); + return lst; + } + } Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/core/RequestHandlersTest.java URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/core/RequestHandlersTest.java?rev=1045302&r1=1045301&r2=1045302&view=diff ============================================================================== --- lucene/dev/trunk/solr/src/test/org/apache/solr/core/RequestHandlersTest.java (original) +++ lucene/dev/trunk/solr/src/test/org/apache/solr/core/RequestHandlersTest.java Mon Dec 13 18:57:24 2010 @@ -30,6 +30,14 @@ public class RequestHandlersTest extends } @Test + public void testInitCount() { + SolrCore core = h.getCore(); + SolrRequestHandler handler = core.getRequestHandler( "mock" ); + assertEquals("Incorrect init count", + 1, handler.getStatistics().get("initCount")); + } + + @Test public void testLazyLoading() { SolrCore core = h.getCore(); SolrRequestHandler handler = core.getRequestHandler( "lazy" ); Modified: lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig.xml URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig.xml?rev=1045302&r1=1045301&r2=1045302&view=diff ============================================================================== --- lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig.xml (original) +++ lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig.xml Mon Dec 13 18:57:24 2010 @@ -304,6 +304,7 @@ sqrt 2 log 10 +