You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by to...@apache.org on 2013/03/28 17:15:00 UTC

svn commit: r1462190 - /jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java

Author: tommaso
Date: Thu Mar 28 16:15:00 2013
New Revision: 1462190

URL: http://svn.apache.org/r1462190
Log:
OAK-700 - fixed startup of spawn SolrServer

Modified:
    jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java

Modified: jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java?rev=1462190&r1=1462189&r2=1462190&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java (original)
+++ jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java Thu Mar 28 16:15:00 2013
@@ -100,11 +100,6 @@ public class EmbeddedSolrServerProvider 
     @Override
     public SolrServer getSolrServer() throws Exception {
         // hack needed to let lucene SPIs work in an OSGi deploy
-//        Thread thread = Thread.currentThread();
-//        ClassLoader loader = thread.getContextClassLoader();
-//        thread.setContextClassLoader(Lucene40Codec.class.getClassLoader());
-//        thread.setContextClassLoader(loader);
-
         Codec.reloadCodecs(Thread.currentThread().getContextClassLoader());
 
         if (solrServer == null) {
@@ -130,8 +125,16 @@ public class EmbeddedSolrServerProvider 
         // try spawning a new Solr server using Jetty and connect to it via HTTP
 
         enableSolrCloud(solrHome, DEFAULT_CORE_NAME);
-        JettySolrRunner jettySolrRunner = new JettySolrRunner(solrHome, CONTEXT, solrHttpPort, "solrconfig.xml", "schema.xml", true);
-        jettySolrRunner.start(true);
+
+        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+        Thread.currentThread().setContextClassLoader(JettySolrRunner.class.getClassLoader());
+
+        try {
+            JettySolrRunner jettySolrRunner = new JettySolrRunner(solrHome, CONTEXT, solrHttpPort, "solrconfig.xml", "schema.xml", true);
+            jettySolrRunner.start(true);
+        } finally {
+            Thread.currentThread().setContextClassLoader(classLoader);
+        }
         HttpSolrServer httpSolrServer = new HttpSolrServer(new StringBuilder(LOCAL_BASE_URL)
                 .append(':').append(solrHttpPort).append(CONTEXT).toString());
         if (OakSolrUtils.checkServerAlive(httpSolrServer)) {
@@ -147,6 +150,7 @@ public class EmbeddedSolrServerProvider 
         System.setProperty(SOLR_HOME_PROPERTY_NAME, solrHome);
         enableSolrCloud(solrHome, DEFAULT_CORE_NAME);
         CoreContainer.Initializer initializer = new CoreContainer.Initializer();
+
         EmbeddedSolrServer embeddedSolrServer = new EmbeddedSolrServer(initializer.initialize(), DEFAULT_CORE_NAME);
         if (OakSolrUtils.checkServerAlive(embeddedSolrServer)) {
             return embeddedSolrServer;