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/03/21 16:22:12 UTC
svn commit: r1303440 - in /lucene/dev/branches/branch_3x: ./ lucene/
lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
Author: rmuir
Date: Wed Mar 21 15:22:12 2012
New Revision: 1303440
URL: http://svn.apache.org/viewvc?rev=1303440&view=rev
Log:
LUCENE-2899: don't rely upon DirectoryReader.indexExists to determine if we should checkIndex
Modified:
lucene/dev/branches/branch_3x/ (props changed)
lucene/dev/branches/branch_3x/lucene/ (props changed)
lucene/dev/branches/branch_3x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
Modified: lucene/dev/branches/branch_3x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_3x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java?rev=1303440&r1=1303439&r2=1303440&view=diff
==============================================================================
--- lucene/dev/branches/branch_3x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java (original)
+++ lucene/dev/branches/branch_3x/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java Wed Mar 21 15:22:12 2012
@@ -552,7 +552,7 @@ public class MockDirectoryWrapper extend
}
open = false;
if (checkIndexOnClose) {
- if (IndexReader.indexExists(this)) {
+ if (indexPossiblyExists(this)) {
if (LuceneTestCase.VERBOSE) {
System.out.println("\nNOTE: MockDirectoryWrapper: now crash");
}
@@ -588,6 +588,26 @@ public class MockDirectoryWrapper extend
}
delegate.close();
}
+
+ /** don't rely upon DirectoryReader.fileExists to determine if we should
+ * checkIndex() or not. It might mask real problems, where we silently
+ * don't checkindex at all. instead we look for a segments file.
+ */
+ private boolean indexPossiblyExists(Directory d) throws IOException {
+ String files[];
+ try {
+ files = d.listAll();
+ } catch (IOException ex) {
+ // this means directory doesn't exist, which is ok. return false
+ return false;
+ }
+ for (String f : files) {
+ if (f.startsWith("segments_")) {
+ return true;
+ }
+ }
+ return false;
+ }
synchronized void removeOpenFile(Closeable c, String name) {
Integer v = openFiles.get(name);