You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Noble Paul (JIRA)" <ji...@apache.org> on 2013/10/29 19:54:26 UTC

[jira] [Resolved] (SOLR-5400) NullPointerException

     [ https://issues.apache.org/jira/browse/SOLR-5400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Noble Paul resolved SOLR-5400.
------------------------------

    Resolution: Fixed
      Assignee: Noble Paul

committed 

> 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
>            Assignee: Noble Paul
>            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