Author: jcouteau Date: 2011-08-16 11:17:37 +0200 (Tue, 16 Aug 2011) New Revision: 1152 Url: http://nuiton.org/repositories/revision/wikitty/1152 Log: #1220 - Strange errors during tests - Possible resource leak ! Close resource in tests. Adding the possibility to do it in the WikittySearchEngineSolr, need to propagate that to other services/search engines ? No error shown anymore Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/SolrResource.java trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittyServiceSolr.java Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/SolrResource.java =================================================================== --- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/SolrResource.java 2011-08-15 16:06:36 UTC (rev 1151) +++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/SolrResource.java 2011-08-16 09:17:37 UTC (rev 1152) @@ -80,6 +80,10 @@ BasicAction.Current().add(lastResourceRecord); } + protected void close() { + + } + public Map<String, SolrInputDocument> getAddedDocs() { Map<String, SolrInputDocument> result = addedDocs.get(); if (result == null) { Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java =================================================================== --- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2011-08-15 16:06:36 UTC (rev 1151) +++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2011-08-16 09:17:37 UTC (rev 1152) @@ -92,6 +92,9 @@ /** JTA resource */ protected SolrResource solrResource; + /** CoreContainer used to init the server and close it when finished **/ + protected CoreContainer solrCore; + /** * Init wikitty search engine on solr embedded server. * @@ -131,8 +134,8 @@ try { CoreContainer.Initializer initializer = new CoreContainer.Initializer(); - CoreContainer coreContainer = initializer.initialize(); - solrServer = new EmbeddedSolrServer(coreContainer, ""); + solrCore = initializer.initialize(); + solrServer = new EmbeddedSolrServer(solrCore, ""); fieldModifier = new FieldModifier(extensionStorage); solrResource = new SolrResource(solrServer); @@ -467,6 +470,8 @@ } } catch (Exception eee) { throw new WikittyException("Can't delete wikitty in index", eee); + } finally { + solrResource.close(); } timeLog.log(startTime, "delete", String.format( "nb %s", ids.size())); @@ -994,4 +999,11 @@ return doc; } + /** + * Method to destroy properly the search engine. Mainly used in tests + */ + protected void destroy() { + solrCore.shutdown(); + } + } Modified: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java 2011-08-15 16:06:36 UTC (rev 1151) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java 2011-08-16 09:17:37 UTC (rev 1152) @@ -24,6 +24,7 @@ */ package org.nuiton.wikitty.storage.solr; +import org.junit.AfterClass; import org.junit.BeforeClass; import org.nuiton.util.ApplicationConfig; import org.nuiton.wikitty.WikittyConfig; @@ -36,7 +37,7 @@ */ public class SolrSearchInMemoryTest extends AbstractSearchTest { - WikittyService service; + static protected WikittyService service; static protected ApplicationConfig config = WikittyConfig.getConfig("wikitty-config-sample-inmemory.properties"); @@ -45,6 +46,11 @@ SolrTestHelper.initTests(config); } + @AfterClass + public static void closeTests() { + SolrTestHelper.closeTests((WikittyServiceSolr)service); + } + @Override public WikittyService getWikittyService() { Modified: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java 2011-08-15 16:06:36 UTC (rev 1151) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java 2011-08-16 09:17:37 UTC (rev 1152) @@ -24,6 +24,7 @@ */ package org.nuiton.wikitty.storage.solr; +import org.junit.AfterClass; import org.junit.BeforeClass; import org.nuiton.util.ApplicationConfig; import org.nuiton.wikitty.WikittyConfig; @@ -35,15 +36,20 @@ */ public class SolrSearchServerTest extends AbstractSearchTest { - WikittyService service; + protected static WikittyService service; - static protected ApplicationConfig config = WikittyConfig.getConfig("wikitty-config-sample-server.properties"); + protected static ApplicationConfig config = WikittyConfig.getConfig("wikitty-config-sample-server.properties"); @BeforeClass public static void initTests() { SolrTestHelper.initTests(config); } + @AfterClass + public static void closeTests() { + SolrTestHelper.closeTests((WikittyServiceSolr) service); + } + @Override public WikittyService getWikittyService() { Modified: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java 2011-08-15 16:06:36 UTC (rev 1151) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java 2011-08-16 09:17:37 UTC (rev 1152) @@ -56,4 +56,8 @@ config.setOption(WikittyConfigOption.WIKITTY_DATA_DIR.key, dataDirectory.getAbsolutePath()); } + + public static void closeTests(WikittyServiceSolr service) { + service.close(); + } } Modified: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittyServiceSolr.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittyServiceSolr.java 2011-08-15 16:06:36 UTC (rev 1151) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/WikittyServiceSolr.java 2011-08-16 09:17:37 UTC (rev 1152) @@ -44,4 +44,8 @@ wikittyStorage = new WikittyStorageInMemory(); searchEngine = new WikittySearchEngineSolr(config, extensionStorage); } + + public void close(){ + ((WikittySearchEngineSolr)searchEngine).destroy(); + } }