Gregg Donovan created SOLR-4413:
-----------------------------------

             Summary: SolrCore#getIndexDir() contract change between 3.6 and 4.1
                 Key: SOLR-4413
                 URL: https://issues.apache.org/jira/browse/SOLR-4413
             Project: Solr
          Issue Type: Bug
    Affects Versions: 4.1, 4.0
            Reporter: Gregg Donovan


In [SVN 1420992|http://svn.apache.org/viewvc?view=revision&revision=1420992], 
{{SolrCore#getIndexDir()}} changed it's implementation from a version that 
would reflect the value of the index property in {{index.properties}} to one 
that does not. 

In 3.6, {{SolrCore#getIndexDir()}} was:
{code:java}
public String getIndexDir() {
  synchronized (searcherLock) {
    if (_searcher == null)              
      return dataDir + "index/";
    SolrIndexSearcher searcher = _searcher.get();
    return searcher.getIndexDir() == null ? dataDir + "index/" : 
searcher.getIndexDir();
}
{code}

In 3.6, {{SolrIndexSearcher}} would be passed the value of 
{{SolrCore#getNewIndexDir()}} -- which reads index.properties -- in its 
constructor and return it when {{SolrIndexSearcher#getIndexDir()}} was called.
 
In 4.1, {{SolrCore#getIndexDir()}} is:
{code:java}
  public String getIndexDir() {  
    return dataDir + "index/";
  }
{code}

Clients of {{SolrCore#getIndexDir()}} that were expecting the previous behavior 
are likely to have issues. E.g.:

--In {{CoreAdminHandler#handleUnloadAction(SolrQueryRequest, 
SolrQueryResponse)}} if the {{deleteIndex}} flag is set to true, it calls 
{{core.getDirectoryFactory().remove(core.getIndexDir())}}. If a value other 
than {{index/}} is set in {{index.properties}}, the wrong directory will be 
deleted.

--In {{CoreAdminHandler#getIndexSize(SolrCore)}}, the existence of 
{{SolrCore#getIndexDir()}} is checked before {{SolrCore#getNewIndexDir()}}. If 
a value other than {{index/}} is set in {{index.properties}}, this will return 
the size of the wrong directory.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to