You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Pascal Chollet (JIRA)" <ji...@apache.org> on 2013/10/29 15:46:31 UTC
[jira] [Created] (SOLR-5400) NullPointerException
Pascal Chollet created SOLR-5400:
------------------------------------
Summary: NullPointerException
Key: SOLR-5400
URL: https://issues.apache.org/jira/browse/SOLR-5400
Project: Solr
Issue Type: Bug
Affects Versions: 4.5
Reporter: Pascal Chollet
Priority: Minor
I want write tests for some of our own components which internally use a SolrCore. As SolrCore is defined final, I cannot mock it and instead have to create an instance of it. Therefore I came across the following constructor:
{code}public SolrCore(String name, CoreDescriptor cd) {
this.setName(name);
coreDescriptor = cd;
this.schema = null;
this.dataDir = null;
this.solrConfig = null;
this.startTime = System.currentTimeMillis();
this.maxWarmingSearchers = 2; // we don't have a config yet, just pick a number.
this.resourceLoader = null;
this.updateHandler = null;
this.isReloaded = true;
this.reqHandlers = null;
this.searchComponents = null;
this.updateProcessorChains = null;
this.infoRegistry = null;
this.codec = null;
solrCoreState = null;
}
{code}
When calling this constructor there will always be a NullPointerException, because of the call of setName(...) before coreDescriptor is set. In setName this.coreDescriptor (which was not yet set) is being used:
{code}
public void setName(String v) {
this.name = v;
this.logid = (v==null)?"":("["+v+"] ");
this.coreDescriptor = new CoreDescriptor(v, this.coreDescriptor);
}
{code}
The fix probably is to set the coreDesciptor first and then call setName.
--
This message was sent by Atlassian JIRA
(v6.1#6144)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org