[ https://issues.apache.org/jira/browse/SOLR-4413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13580302#comment-13580302 ]
Commit Tag Bot commented on SOLR-4413: -------------------------------------- [trunk commit] Mark Robert Miller http://svn.apache.org/viewvc?view=revision&revision=1447089 SOLR-4413: Fix SolrCore#getIndexDir() to return the current index directory. SOLR-4469: A new IndexWriter must be opened on SolrCore reload when the index directory has changed and the previous SolrCore's state should not be propagated. > 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.0, 4.1 > Reporter: Gregg Donovan > Assignee: Mark Miller > Fix For: 4.2, 5.0 > > Attachments: SOLR-4413.patch, SOLR-4413.patch > > > 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org