You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2010/07/12 19:28:34 UTC
svn commit: r963372 - in /lucene/dev/trunk/lucene: CHANGES.txt
src/java/org/apache/lucene/store/FileSwitchDirectory.java
Author: mikemccand
Date: Mon Jul 12 17:28:34 2010
New Revision: 963372
URL: http://svn.apache.org/viewvc?rev=963372&view=rev
Log:
LUCENE-2533: don't return dup Strings from FileSwitchDir.listAll
Modified:
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FileSwitchDirectory.java
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=963372&r1=963371&r2=963372&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Mon Jul 12 17:28:34 2010
@@ -407,6 +407,10 @@ Bug fixes
* LUCENE-2513: when opening writable IndexReader on a not-current
commit, do not overwrite "future" commits. (Mike McCandless)
+* LUCENE-2533: fix FileSwitchDirectory.listAll to not return dups when
+ primary & secondary dirs share the same underlying directory.
+ (Michael McCandless)
+
New features
* LUCENE-2128: Parallelized fetching document frequencies during weight
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FileSwitchDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FileSwitchDirectory.java?rev=963372&r1=963371&r2=963372&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FileSwitchDirectory.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FileSwitchDirectory.java Mon Jul 12 17:28:34 2010
@@ -24,6 +24,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
+import java.util.HashSet;
/**
* Expert: A Directory instance that switches files between
@@ -76,12 +77,14 @@ public class FileSwitchDirectory extends
@Override
public String[] listAll() throws IOException {
- String[] primaryFiles = primaryDir.listAll();
- String[] secondaryFiles = secondaryDir.listAll();
- String[] files = new String[primaryFiles.length + secondaryFiles.length];
- System.arraycopy(primaryFiles, 0, files, 0, primaryFiles.length);
- System.arraycopy(secondaryFiles, 0, files, primaryFiles.length, secondaryFiles.length);
- return files;
+ Set<String> files = new HashSet<String>();
+ for(String f : primaryDir.listAll()) {
+ files.add(f);
+ }
+ for(String f : secondaryDir.listAll()) {
+ files.add(f);
+ }
+ return files.toArray(new String[files.size()]);
}
/** Utility method to return a file's extension. */