Mark-

You're right that SolrCore#getIndexDir() did not directly read
index.properties in 3.6. In 3.6, it gets it indirectly from what is passed
to the constructor of SolrIndexSearcher. Here's SolrCore#getIndexDir() in
3.6:

  public String getIndexDir() {
    synchronized (searcherLock) {
      if (_searcher == null)
        return dataDir + "index/";
      SolrIndexSearcher searcher = _searcher.get();
      return searcher.getIndexDir() == null ? dataDir + "index/" :
searcher.getIndexDir();
    }
  }

In 3.6 the only time I see a new SolrIndexSearcher created without the
results of SolrCore#getNewIndexDir() getting passed in somehow would be if
SolrCore#newSearcher(String, boolean) is called manually before any other
SolrIndexSearcher. Otherwise, it looks like getNewIndexDir() is getting
passed to new SolrIndexSearcher which is then reflected back
in SolrCore#getIndexDir().

So, in 3.6 we had been able to rely on SolrCore#getIndexDir() giving us
either the value the index referenced in index.properties OR dataDir +
"index/" if index.properties was missing. In 4.1, it always gives us
dataDir + "index/".

Here's the comment in 3.6 on SolrCore#getNewIndexDir() that I think you
were referring to. The comment is unchanged in 4.1:

  /**
   * Returns the indexdir as given in index.properties. If index.properties
exists in dataDir and
   * there is a property <i>index</i> available and it points to a valid
directory
   * in dataDir that is returned Else dataDir/index is returned. Only
called for creating new indexSearchers
   * and indexwriters. Use the getIndexDir() method to know the active
index directory
   *
   * @return the indexdir as given in index.properties
   */
  public String getNewIndexDir() {

*"Use the getIndexDir() method to know the active index directory"* is the
behavior that we were reliant on. Since it's now hardcoded to dataDir +
"index/", it doesn't always return the active index directory.

--Gregg

On Wed, Feb 6, 2013 at 5:13 PM, Mark Miller <markrmil...@gmail.com> wrote:

>
> On Feb 6, 2013, at 4:23 PM, Gregg Donovan <gregg...@gmail.com> wrote:
>
> > code we had that relied on the 3.6 behavior of SolrCore#getIndexDir() is
> > not working the same way.
>
> Can you be very specific about the different behavior that you are seeing?
> What exactly where you seeing and counting on and what are you seeing now?
>
> - Mark

Reply via email to