You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2015/02/13 18:51:52 UTC
svn commit: r1659628 - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/core/ lucene/core/src/java/org/apache/lucene/store/
lucene/core/src/test/org/apache/lucene/index/
lucene/core/src/test/org/apache/lucene/search/
lucene/core/src/test/org/apache...
Author: rmuir
Date: Fri Feb 13 17:51:51 2015
New Revision: 1659628
URL: http://svn.apache.org/r1659628
Log:
LUCENE-6241: FSDirectory.listAll doesnt filter out subdirectories anymore
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/lucene/ (props changed)
lucene/dev/branches/branch_5x/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/lucene/core/ (props changed)
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/Directory.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/RAMDirectory.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java
lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java
lucene/dev/branches/branch_5x/lucene/test-framework/ (props changed)
lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
lucene/dev/branches/branch_5x/solr/ (props changed)
lucene/dev/branches/branch_5x/solr/core/ (props changed)
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java
Modified: lucene/dev/branches/branch_5x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/CHANGES.txt?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/lucene/CHANGES.txt Fri Feb 13 17:51:51 2015
@@ -54,6 +54,11 @@ Optimizations
positions lazily if the phrase query is in a conjunction with other queries.
(Robert Muir, Adrien Grand)
+* LUCENE-6241: FSDirectory.listAll() doesnt filter out subdirectories anymore,
+ for faster performance. Subdirectories don't matter to Lucene. If you need to
+ filter out non-index files with some custom usage, you may want to look at
+ the IndexFileNames class. (Robert Muir)
+
API Changes
* LUCENE-6204, LUCENE-6208: Simplify CompoundFormat: remove files()
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/Directory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/Directory.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/Directory.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/Directory.java Fri Feb 13 17:51:51 2015
@@ -43,7 +43,7 @@ import org.apache.lucene.util.IOUtils;
public abstract class Directory implements Closeable {
/**
- * Returns an array of strings, one for each file in the directory.
+ * Returns an array of strings, one for each entry in the directory.
*
* @throws IOException in case of IO error
*/
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/FSDirectory.java Fri Feb 13 17:51:51 2015
@@ -166,19 +166,14 @@ public abstract class FSDirectory extend
}
}
- /** Lists all files (not subdirectories) in the
+ /** Lists all files (including subdirectories) in the
* directory.
*
* @throws IOException if there was an I/O error during listing */
public static String[] listAll(Path dir) throws IOException {
List<String> entries = new ArrayList<>();
- try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, new DirectoryStream.Filter<Path>() {
- @Override
- public boolean accept(Path entry) throws IOException {
- return !Files.isDirectory(entry); // filter out entries that are definitely directories.
- }
- })) {
+ try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir)) {
for (Path path : stream) {
entries.add(path.getFileName().toString());
}
@@ -187,9 +182,6 @@ public abstract class FSDirectory extend
return entries.toArray(new String[entries.size()]);
}
- /** Lists all files (not subdirectories) in the
- * directory.
- * @see #listAll(Path) */
@Override
public String[] listAll() throws IOException {
ensureOpen();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/RAMDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/RAMDirectory.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/RAMDirectory.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/store/RAMDirectory.java Fri Feb 13 17:51:51 2015
@@ -19,6 +19,7 @@ package org.apache.lucene.store;
import java.io.IOException;
import java.io.FileNotFoundException;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -87,14 +88,16 @@ public class RAMDirectory extends BaseDi
* @param dir a <code>Directory</code> value
* @exception IOException if an error occurs
*/
- public RAMDirectory(Directory dir, IOContext context) throws IOException {
+ public RAMDirectory(FSDirectory dir, IOContext context) throws IOException {
this(dir, false, context);
}
- private RAMDirectory(Directory dir, boolean closeDir, IOContext context) throws IOException {
+ private RAMDirectory(FSDirectory dir, boolean closeDir, IOContext context) throws IOException {
this();
for (String file : dir.listAll()) {
- copyFrom(dir, file, file, context);
+ if (!Files.isDirectory(dir.getDirectory().resolve(file))) {
+ copyFrom(dir, file, file, context);
+ }
}
if (closeDir) {
dir.close();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestAddIndexes.java Fri Feb 13 17:51:51 2015
@@ -394,7 +394,7 @@ public class TestAddIndexes extends Luce
setMergePolicy(newLogMergePolicy(4))
);
- writer.addIndexes(aux, new MockDirectoryWrapper(random(), new RAMDirectory(aux, newIOContext(random()))));
+ writer.addIndexes(aux, new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(aux)));
assertEquals(1060, writer.maxDoc());
assertEquals(1000, writer.getDocCount(0));
writer.close();
@@ -436,7 +436,7 @@ public class TestAddIndexes extends Luce
if (VERBOSE) {
System.out.println("\nTEST: now addIndexes");
}
- writer.addIndexes(aux, new MockDirectoryWrapper(random(), new RAMDirectory(aux, newIOContext(random()))));
+ writer.addIndexes(aux, new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(aux)));
assertEquals(1020, writer.maxDoc());
assertEquals(1000, writer.getDocCount(0));
writer.close();
@@ -686,7 +686,7 @@ public class TestAddIndexes extends Luce
final Directory[] dirs = new Directory[NUM_COPY];
for(int k=0;k<NUM_COPY;k++)
- dirs[k] = new MockDirectoryWrapper(random(), new RAMDirectory(dir, newIOContext(random())));
+ dirs[k] = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(dir));
int j=0;
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Fri Feb 13 17:51:51 2015
@@ -42,7 +42,6 @@ import org.apache.lucene.search.ScoreDoc
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.MockDirectoryWrapper;
-import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
@@ -525,7 +524,7 @@ public class TestIndexWriterDelete exten
if (VERBOSE) {
System.out.println("TEST: cycle");
}
- MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), new RAMDirectory(startDir, newIOContext(random())));
+ MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(startDir));
dir.setPreventDoubleWrite(false);
dir.setAllowRandomFileNotFoundException(false);
// test uses IW unref'ed helper which is unaware of retries
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Fri Feb 13 17:51:51 2015
@@ -983,7 +983,7 @@ public class TestIndexWriterExceptions e
if (VERBOSE) {
System.out.println("TEST: iter " + i);
}
- MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), new RAMDirectory(startDir, newIOContext(random())));
+ MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(startDir));
conf = newIndexWriterConfig(new MockAnalyzer(random()))
.setMergeScheduler(new ConcurrentMergeScheduler());
((ConcurrentMergeScheduler) conf.getMergeScheduler()).setSuppressExceptions();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnDiskFull.java Fri Feb 13 17:51:51 2015
@@ -255,7 +255,7 @@ public class TestIndexWriterOnDiskFull e
}
// Make a new dir that will enforce disk usage:
- MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), new RAMDirectory(startDir, newIOContext(random())));
+ MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(startDir));
writer = new IndexWriter(dir, newIndexWriterConfig(new MockAnalyzer(random()))
.setOpenMode(OpenMode.APPEND)
.setMergePolicy(newLogMergePolicy(false)));
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterReader.java Fri Feb 13 17:51:51 2015
@@ -463,7 +463,7 @@ public class TestIndexWriterReader exten
try {
final Directory[] dirs = new Directory[numDirs];
for (int k = 0; k < numDirs; k++)
- dirs[k] = new MockDirectoryWrapper(random(), new RAMDirectory(addDir, newIOContext(random())));
+ dirs[k] = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(addDir));
//int j = 0;
//while (true) {
// System.out.println(Thread.currentThread().getName() + ": iter
@@ -723,7 +723,7 @@ public class TestIndexWriterReader exten
final Directory[] dirs = new Directory[10];
for (int i=0;i<10;i++) {
- dirs[i] = new MockDirectoryWrapper(random(), new RAMDirectory(dir1, newIOContext(random())));
+ dirs[i] = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(dir1));
}
DirectoryReader r = writer.getReader();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestTermVectorsWriter.java Fri Feb 13 17:51:51 2015
@@ -34,9 +34,9 @@ import org.apache.lucene.document.TextFi
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.MockDirectoryWrapper;
-import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
/** tests for writing term vectors */
public class TestTermVectorsWriter extends LuceneTestCase {
@@ -413,7 +413,7 @@ public class TestTermVectorsWriter exten
.setMergeScheduler(new SerialMergeScheduler())
.setMergePolicy(new LogDocMergePolicy()));
- Directory[] indexDirs = {new MockDirectoryWrapper(random(), new RAMDirectory(dir, newIOContext(random())))};
+ Directory[] indexDirs = {new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(dir))};
writer.addIndexes(indexDirs);
writer.forceMerge(1);
writer.close();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/search/TestBoolean2.java Fri Feb 13 17:51:51 2015
@@ -30,9 +30,7 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.MockDirectoryWrapper;
-import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
import org.junit.AfterClass;
@@ -70,7 +68,7 @@ public class TestBoolean2 extends Lucene
searcher.setSimilarity(new DefaultSimilarity());
// Make big index
- dir2 = new MockDirectoryWrapper(random(), new RAMDirectory(directory, IOContext.DEFAULT));
+ dir2 = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(directory));
// First multiply small test index:
mulFactor = 1;
@@ -82,7 +80,7 @@ public class TestBoolean2 extends Lucene
if (VERBOSE) {
System.out.println("\nTEST: cycle...");
}
- final Directory copy = new MockDirectoryWrapper(random(), new RAMDirectory(dir2, IOContext.DEFAULT));
+ final Directory copy = new MockDirectoryWrapper(random(), TestUtil.ramCopyOf(dir2));
RandomIndexWriter w = new RandomIndexWriter(random(), dir2);
w.addIndexes(copy);
docCount = w.maxDoc();
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java Fri Feb 13 17:51:51 2015
@@ -142,7 +142,7 @@ public class TestDirectory extends BaseD
Path path = createTempDir("testsubdir");
try {
Files.createDirectory(path.resolve("subdir"));
- Directory fsDir = new SimpleFSDirectory(path);
+ FSDirectory fsDir = new SimpleFSDirectory(path);
assertEquals(0, new RAMDirectory(fsDir, newIOContext(random())).listAll().length);
} finally {
IOUtils.rm(path);
Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java Fri Feb 13 17:51:51 2015
@@ -70,10 +70,10 @@ public class TestRAMDirectory extends Ba
// LUCENE-1468
public void testCopySubdir() throws Throwable {
Path path = createTempDir("testsubdir");
- Directory fsDir = null;
+ FSDirectory fsDir = null;
try {
Files.createDirectory(path.resolve("subdir"));
- fsDir = newFSDirectory(path);
+ fsDir = new SimpleFSDirectory(path);
assertEquals(0, new RAMDirectory(fsDir, newIOContext(random())).listAll().length);
} finally {
IOUtils.close(fsDir);
@@ -84,7 +84,7 @@ public class TestRAMDirectory extends Ba
public void testRAMDirectory () throws IOException {
Path indexDir = buildIndex();
- Directory dir = newFSDirectory(indexDir);
+ FSDirectory dir = new SimpleFSDirectory(indexDir);
MockDirectoryWrapper ramDir = new MockDirectoryWrapper(random(), new RAMDirectory(dir, newIOContext(random())));
// close the underlaying directory
@@ -117,7 +117,7 @@ public class TestRAMDirectory extends Ba
Path indexDir = buildIndex();
- Directory dir = newFSDirectory(indexDir);
+ FSDirectory dir = new SimpleFSDirectory(indexDir);
final MockDirectoryWrapper ramDir = new MockDirectoryWrapper(random(), new RAMDirectory(dir, newIOContext(random())));
dir.close();
Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java Fri Feb 13 17:51:51 2015
@@ -48,6 +48,7 @@ import java.util.zip.ZipInputStream;
import com.carrotsearch.randomizedtesting.generators.RandomInts;
import com.carrotsearch.randomizedtesting.generators.RandomPicks;
+
import org.apache.lucene.codecs.Codec;
import org.apache.lucene.codecs.DocValuesFormat;
import org.apache.lucene.codecs.PostingsFormat;
@@ -100,7 +101,9 @@ import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.FilterDirectory;
+import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.NoLockFactory;
+import org.apache.lucene.store.RAMDirectory;
import org.junit.Assert;
@@ -1235,6 +1238,15 @@ public final class TestUtil {
}
}
+ /** Returns a copy of directory, entirely in RAM */
+ public static RAMDirectory ramCopyOf(Directory dir) throws IOException {
+ RAMDirectory ram = new RAMDirectory();
+ for (String file : dir.listAll()) {
+ ram.copyFrom(dir, file, file, IOContext.DEFAULT);
+ }
+ return ram;
+ }
+
/** List of characters that match {@link Character#isWhitespace} */
public static final char[] WHITESPACE_CHARACTERS = new char[] {
// :TODO: is this list exhaustive?
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java Fri Feb 13 17:51:51 2015
@@ -221,7 +221,8 @@ public abstract class DirectoryFactory i
public static long sizeOf(Directory directory, String file) throws IOException {
try {
return directory.fileLength(file);
- } catch (FileNotFoundException | NoSuchFileException e) {
+ } catch (IOException e) {
+ // could be a race, file no longer exists, access denied, is a directory, etc.
return 0;
}
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java?rev=1659628&r1=1659627&r2=1659628&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/store/hdfs/HdfsDirectory.java Fri Feb 13 17:51:51 2015
@@ -168,13 +168,11 @@ public class HdfsDirectory extends BaseD
return new String[] {};
}
for (FileStatus status : listStatus) {
- if (!status.isDirectory()) {
- files.add(status.getPath().getName());
- }
+ files.add(status.getPath().getName());
}
return getNormalNames(files);
}
-
+
public Path getHdfsDirPath() {
return hdfsDirPath;
}