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 2012/10/02 18:10:44 UTC
svn commit: r1393004 - in /lucene/dev/branches/lucene4456/lucene:
core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
Author: mikemccand
Date: Tue Oct 2 16:10:43 2012
New Revision: 1393004
URL: http://svn.apache.org/viewvc?rev=1393004&view=rev
Log:
LUCENE-4456: print the diff when unref'd files are removed
Modified:
lucene/dev/branches/lucene4456/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
Modified: lucene/dev/branches/lucene4456/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4456/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java?rev=1393004&r1=1393003&r2=1393004&view=diff
==============================================================================
--- lucene/dev/branches/lucene4456/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (original)
+++ lucene/dev/branches/lucene4456/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java Tue Oct 2 16:10:43 2012
@@ -341,6 +341,12 @@ public class TestIndexWriterWithThreads
}
@Override
public void eval(MockDirectoryWrapper dir) throws IOException {
+
+ // Since we throw exc during abort, eg when IW is
+ // attempting to delete files, we will leave
+ // leftovers:
+ dir.setAssertNoUnrefencedFilesOnClose(false);
+
if (doFail) {
StackTraceElement[] trace = new Exception().getStackTrace();
boolean sawAbortOrFlushDoc = false;
@@ -357,8 +363,8 @@ public class TestIndexWriterWithThreads
if (sawAbortOrFlushDoc && !sawClose) {
if (onlyOnce)
doFail = false;
- System.out.println(Thread.currentThread().getName() + ": now fail");
- new Throwable().printStackTrace(System.out);
+ //System.out.println(Thread.currentThread().getName() + ": now fail");
+ //new Throwable().printStackTrace(System.out);
throw new IOException("now failing on purpose");
}
}
@@ -405,6 +411,8 @@ public class TestIndexWriterWithThreads
if ("flush".equals(trace[i].getMethodName()) && "org.apache.lucene.index.DocFieldProcessor".equals(trace[i].getClassName())) {
if (onlyOnce)
doFail = false;
+ System.out.println("NOW FAIL");
+ new Throwable().printStackTrace(System.out);
throw new IOException("now failing on purpose");
}
}
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=1393004&r1=1393003&r2=1393004&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 16:10:43 2012
@@ -590,8 +590,37 @@ public class MockDirectoryWrapper extend
Arrays.sort(startFiles);
Arrays.sort(endFiles);
+ Set<String> startSet = new HashSet<String>(Arrays.asList(startFiles));
+ Set<String> endSet = new HashSet<String>(Arrays.asList(endFiles));
+
if (!Arrays.equals(startFiles, endFiles)) {
- assert false : "unreferenced files: before delete:\n " + Arrays.toString(startFiles) + "\n after delete:\n " + Arrays.toString(endFiles);
+ StringBuilder sb = new StringBuilder();
+ boolean printed = false;
+ for(String fileName : startFiles) {
+ if (!endSet.contains(fileName)) {
+ if (!printed) {
+ sb.append("These files were deleted:\n");
+ printed = true;
+ }
+ sb.append(" ");
+ sb.append(fileName);
+ sb.append('\n');
+ }
+ }
+
+ printed = false;
+ for(String fileName : endFiles) {
+ if (!startSet.contains(fileName)) {
+ if (!printed) {
+ sb.append("These files were added (waaaat!):\n");
+ printed = true;
+ }
+ sb.append(" ");
+ sb.append(fileName);
+ sb.append('\n');
+ }
+ }
+ assert false : "unreferenced files: before delete:\n " + Arrays.toString(startFiles) + "\n after delete:\n " + Arrays.toString(endFiles) + "\n\n" + sb.toString();
}
DirectoryReader ir1 = DirectoryReader.open(this);