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 2012/10/02 20:05:19 UTC
svn commit: r1393067 -
/lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
Author: rmuir
Date: Tue Oct 2 18:05:19 2012
New Revision: 1393067
URL: http://svn.apache.org/viewvc?rev=1393067&view=rev
Log:
fix the waaaaaaaat problem
Modified:
lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
Modified: lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java?rev=1393067&r1=1393066&r2=1393067&view=diff
==============================================================================
--- lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java (original)
+++ lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java Tue Oct 2 18:05:19 2012
@@ -32,6 +32,7 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
+import java.util.TreeSet;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.lucene.index.DirectoryReader;
@@ -589,11 +590,17 @@ public class MockDirectoryWrapper extend
new IndexWriter(delegate, new IndexWriterConfig(LuceneTestCase.TEST_VERSION_CURRENT, null)).rollback();
String[] endFiles = delegate.listAll();
- Arrays.sort(startFiles);
- Arrays.sort(endFiles);
+ Set<String> startSet = new TreeSet<String>(Arrays.asList(startFiles));
+ Set<String> endSet = new TreeSet<String>(Arrays.asList(endFiles));
+
+ if (pendingDeletions.contains("segments.gen") && endSet.contains("segments.gen")) {
+ // this is possible if we hit an exception while writing segments.gen, we try to delete it
+ // and it ends out in pendingDeletions (but IFD wont remove this).
+ endSet.remove("segments.gen");
+ }
- Set<String> startSet = new HashSet<String>(Arrays.asList(startFiles));
- Set<String> endSet = new HashSet<String>(Arrays.asList(endFiles));
+ startFiles = startSet.toArray(new String[0]);
+ endFiles = endSet.toArray(new String[0]);
if (!Arrays.equals(startFiles, endFiles)) {
StringBuilder sb = new StringBuilder();