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