import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
-import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
if (overwrite) {
mon.subTask("Erasing previous index");
- FileUtils.deleteAll(indexPath);
+ FileUtils.emptyDirectory(indexPath.toPath());
}
final AtomicReference<FSDirectory> directory = new AtomicReference<FSDirectory>();
try {
mon.subTask("Start index write");
- createDirectory(indexPath);
+ Files.createDirectories(indexPath.toPath());
directory.set(FSDirectory.open(indexPath));
IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_4_9, Queries.getAnalyzer()).setOpenMode(OpenMode.CREATE);
}
}
}
-
- s.release();
} catch (DatabaseException e) {
throw new IllegalStateException(e);
+ } finally {
+ s.release();
}
});
}
return path;
}
- private static void createDirectory(File path) throws IOException {
- Path p = path.toPath();
- if (Files.exists(p) && !Files.isDirectory(p))
- throw new IOException("Could not create index directory " + path + ", a file by that name already exists");
- Files.createDirectories(p);
- }
-
File getIndexPath() {
return indexPath;
}