[
https://issues.apache.org/jira/browse/SOLR-4502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14011291#comment-14011291
]
David Smiley commented on SOLR-4502:
------------------------------------
This is annoying; it's bitten me twice now. I think if this is tackled, we
should step back a bit and think about how to make it easier to create an
EmbeddedSolrServer considering that an ESS is limited to a single SolrCore. In
light of that, the user shouldn't have to be bothered with a CoreContainer, and
I argue not with a SolrConfig object either. They should be able to point to a
SolrCore's instance directory, _and that's it_. Anything else is superfluous
ceremony.
FYI I'm creating my CoreContainer like this, before I then do all the other
stuff:
{code:java}
public static SolrServer createEmbeddedSolr(final String instanceDir) throws
Exception {
final String coreName = new File(instanceDir).getName();
final String dataDir = instanceDir + "/../../cores_data/" + coreName;//or
use null for default
// note: this is more complex than it should be. See SOLR-4502
SolrResourceLoader resourceLoader = new SolrResourceLoader(instanceDir);
CoreContainer container = new CoreContainer(resourceLoader,
ConfigSolr.fromString(resourceLoader, "<solr />") );
container.load();
CoreDescriptor descriptor = new CoreDescriptor(container, coreName,
instanceDir);
SolrConfig config = new SolrConfig(instanceDir, descriptor.getConfigName(),
null);
SolrCore core = new SolrCore(coreName, dataDir, config, null, descriptor);
container.register(core, false);
return new EmbeddedSolrServer(container, core.getName());
}
{code}
> ShardHandlerFactory not initialized in CoreContainer when creating a Core
> manually.
> -----------------------------------------------------------------------------------
>
> Key: SOLR-4502
> URL: https://issues.apache.org/jira/browse/SOLR-4502
> Project: Solr
> Issue Type: Bug
> Affects Versions: 4.1
> Reporter: Michael Aspetsberger
> Assignee: Mark Miller
> Labels: NPE
> Fix For: 4.9, 5.0
>
>
> We are using an embedded solr server for our unit testing purposes. In our
> scenario, we create a {{CoreContainer}} using only the solr-home path, and
> then create the cores manually using a {{CoreDescriptor}}.
> While the creation appears to work fine, it hits an NPE when it handles the
> search:
> {quote}
> Caused by: java.lang.NullPointerException
> at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:181)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1816)
> at
> org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:150)
> {quote}
> According to
> http://mail-archives.apache.org/mod_mbox/lucene-solr-user/201301.mbox/%3CE8A9BF60-5577-45F9-8BEA-B85616C6539D%40gmail.com%3E
> , this is due to a missing {{CoreContainer#load}}.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]