You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ma...@apache.org on 2010/03/22 21:31:06 UTC
svn commit: r926320 - in
/lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core:
DirectoryFactory.java RAMDirectoryFactory.java SolrCore.java
Author: markrmiller
Date: Mon Mar 22 20:31:06 2010
New Revision: 926320
URL: http://svn.apache.org/viewvc?rev=926320&view=rev
Log:
move index exists check into DirectoryFactory so that it can more properly work with RamDir
Modified:
lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/DirectoryFactory.java
lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/RAMDirectoryFactory.java
lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/SolrCore.java
Modified: lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/DirectoryFactory.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/DirectoryFactory.java?rev=926320&r1=926319&r2=926320&view=diff
==============================================================================
--- lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/DirectoryFactory.java (original)
+++ lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/DirectoryFactory.java Mon Mar 22 20:31:06 2010
@@ -16,6 +16,7 @@ package org.apache.solr.core;
* limitations under the License.
*/
+import java.io.File;
import java.io.IOException;
import org.apache.lucene.store.Directory;
@@ -34,6 +35,12 @@ public abstract class DirectoryFactory i
* @throws IOException
*/
public abstract Directory open(String path) throws IOException;
+
+ public boolean exists(String path) {
+ // back compat behavior
+ File dirFile = new File(path);
+ return dirFile.canRead();
+ }
public void init(NamedList args) {
Modified: lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/RAMDirectoryFactory.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/RAMDirectoryFactory.java?rev=926320&r1=926319&r2=926320&view=diff
==============================================================================
--- lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/RAMDirectoryFactory.java (original)
+++ lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/RAMDirectoryFactory.java Mon Mar 22 20:31:06 2010
@@ -17,13 +17,12 @@
package org.apache.solr.core;
-import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
-
-import java.io.IOException;
import java.io.File;
-import java.util.Map;
+import java.io.IOException;
import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.lucene.store.Directory;
/**
* Directory provider for using lucene RAMDirectory
@@ -45,6 +44,17 @@ public class RAMDirectoryFactory extends
return directory;
}
}
+
+ public boolean exists(String path) {
+ synchronized (this) {
+ RefCntRamDirectory directory = directories.get(path);
+ if (directory == null || !directory.isOpen()) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
/**
* Non-public for unit-test access only. Do not use directly
Modified: lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/SolrCore.java?rev=926320&r1=926319&r2=926320&view=diff
==============================================================================
--- lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/solr/branches/newtrunk/solr/src/java/org/apache/solr/core/SolrCore.java Mon Mar 22 20:31:06 2010
@@ -365,15 +365,15 @@ public final class SolrCore implements S
void initIndex() {
try {
- File dirFile = new File(getNewIndexDir());
- boolean indexExists = dirFile.canRead();
+
+ initDirectoryFactory();
+ boolean indexExists = getDirectoryFactory().exists(getNewIndexDir());
boolean firstTime;
synchronized (SolrCore.class) {
- firstTime = dirs.add(dirFile.getCanonicalPath());
+ firstTime = dirs.add(new File(getNewIndexDir()).getCanonicalPath());
}
boolean removeLocks = solrConfig.unlockOnStartup;
- initDirectoryFactory();
initIndexReaderFactory();
if (indexExists && firstTime && removeLocks) {
@@ -391,7 +391,7 @@ public final class SolrCore implements S
// Create the index if it doesn't exist.
if(!indexExists) {
- log.warn(logid+"Solr index directory '" + dirFile + "' doesn't exist."
+ log.warn(logid+"Solr index directory '" + new File(getNewIndexDir()) + "' doesn't exist."
+ " Creating new index...");
SolrIndexWriter writer = new SolrIndexWriter("SolrCore.initIndex", getIndexDir(), getDirectoryFactory(), true, schema, solrConfig.mainIndexConfig, solrDelPolicy);