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 2010/08/23 19:00:47 UTC

svn commit: r988206 [2/4] - in /lucene/dev/trunk: ./ lucene/ lucene/contrib/highlighter/src/test/org/apache/lucene/search/highlight/ lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/ lucene/contrib/instantiated/src/test/org/...

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDirectoryReader.java Mon Aug 23 17:00:43 2010
@@ -24,7 +24,6 @@ import org.apache.lucene.document.Docume
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.BytesRef;
 
 import java.io.IOException;
@@ -137,9 +136,9 @@ public class TestDirectoryReader extends
   }
         
   public void testIsCurrent() throws IOException {
-    MockRAMDirectory ramDir1=newDirectory(random);
+    Directory ramDir1=newDirectory(random);
     addDoc(random, ramDir1, "test foo", true);
-    MockRAMDirectory ramDir2=newDirectory(random);
+    Directory ramDir2=newDirectory(random);
     addDoc(random, ramDir2, "test blah", true);
     IndexReader[] readers = new IndexReader[]{IndexReader.open(ramDir1, false), IndexReader.open(ramDir2, false)};
     MultiReader mr = new MultiReader(readers);
@@ -160,11 +159,11 @@ public class TestDirectoryReader extends
   }
 
   public void testMultiTermDocs() throws IOException {
-    MockRAMDirectory ramDir1=newDirectory(random);
+    Directory ramDir1=newDirectory(random);
     addDoc(random, ramDir1, "test foo", true);
-    MockRAMDirectory ramDir2=newDirectory(random);
+    Directory ramDir2=newDirectory(random);
     addDoc(random, ramDir2, "test blah", true);
-    MockRAMDirectory ramDir3=newDirectory(random);
+    Directory ramDir3=newDirectory(random);
     addDoc(random, ramDir3, "test wow", true);
 
     IndexReader[] readers1 = new IndexReader[]{IndexReader.open(ramDir1, false), IndexReader.open(ramDir3, false)};
@@ -204,7 +203,7 @@ public class TestDirectoryReader extends
     ramDir3.close();
   }
 
-  private void addDoc(Random random, MockRAMDirectory ramDir1, String s, boolean create) throws IOException {
+  private void addDoc(Random random, Directory ramDir1, String s, boolean create) throws IOException {
     IndexWriter iw = new IndexWriter(ramDir1, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, 
         new MockAnalyzer()).setOpenMode(

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestDocumentWriter.java Mon Aug 23 17:00:43 2010
@@ -35,14 +35,14 @@ import org.apache.lucene.document.Fielda
 import org.apache.lucene.document.Field.Index;
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.document.Field.TermVector;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.AttributeSource;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.util.BytesRef;
 
 public class TestDocumentWriter extends LuceneTestCase {
-  private MockRAMDirectory dir;
+  private Directory dir;
   private Random random;
   
   public TestDocumentWriter(String s) {

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldInfos.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldInfos.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldInfos.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldInfos.java Mon Aug 23 17:00:43 2010
@@ -19,7 +19,7 @@ package org.apache.lucene.index;
 
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.document.Document;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IndexOutput;
 
 import java.io.IOException;
@@ -47,16 +47,15 @@ public class TestFieldInfos extends Luce
     fieldInfos.add(testDoc);
     //Since the complement is stored as well in the fields map
     assertTrue(fieldInfos.size() == DocHelper.all.size()); //this is all b/c we are using the no-arg constructor
-    MockRAMDirectory dir = newDirectory(newRandom());
+    Directory dir = newDirectory(newRandom());
     String name = "testFile";
     IndexOutput output = dir.createOutput(name);
     assertTrue(output != null);
     //Use a RAMOutputStream
     
-    try {
       fieldInfos.write(output);
       output.close();
-      assertTrue(output.length() > 0);
+      assertTrue(dir.fileLength(name) > 0);
       FieldInfos readIn = new FieldInfos(dir, name);
       assertTrue(fieldInfos.size() == readIn.size());
       FieldInfo info = readIn.fieldInfo("textField1");
@@ -80,10 +79,5 @@ public class TestFieldInfos extends Luce
       assertTrue(info.omitNorms == true);
 
       dir.close();
-
-    } catch (IOException e) {
-      assertTrue(false);
-    }
-
   }
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFieldsReader.java Mon Aug 23 17:00:43 2010
@@ -40,12 +40,11 @@ import org.apache.lucene.store.Directory
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.IndexOutput;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 
 public class TestFieldsReader extends LuceneTestCase {
-  private MockRAMDirectory dir;
+  private Directory dir;
   private Document testDoc = new Document();
   private FieldInfos fieldInfos = null;
   private Random random;

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestFilterIndexReader.java Mon Aug 23 17:00:43 2010
@@ -22,8 +22,7 @@ import org.apache.lucene.util.LuceneTest
 import junit.framework.TestSuite;
 import junit.textui.TestRunner;
 
-import org.apache.lucene.store.MockRAMDirectory;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -132,7 +131,7 @@ public class TestFilterIndexReader exten
    */
   public void testFilterIndexReader() throws Exception {
     Random random = newRandom();
-    MockRAMDirectory directory = newDirectory(random);
+    Directory directory = newDirectory(random);
     IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
 
     Document d1 = new Document();
@@ -150,7 +149,7 @@ public class TestFilterIndexReader exten
     writer.close();
 
     //IndexReader reader = new TestReader(IndexReader.open(directory, true));
-    MockRAMDirectory target = newDirectory(random);
+    Directory target = newDirectory(random);
     writer = new IndexWriter(target, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     IndexReader reader = new TestReader(IndexReader.open(directory, true));
     writer.addIndexes(reader);

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexFileDeleter.java Mon Aug 23 17:00:43 2010
@@ -21,7 +21,7 @@ import org.apache.lucene.util.LuceneTest
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IndexInput;
 import org.apache.lucene.store.IndexOutput;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -39,7 +39,7 @@ public class TestIndexFileDeleter extend
   
   public void testDeleteLeftoverFiles() throws IOException {
     Random random = newRandom();
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     dir.setPreventDoubleWrite(false);
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random,
         TEST_VERSION_CURRENT, new MockAnalyzer())

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReader.java Mon Aug 23 17:00:43 2010
@@ -51,8 +51,10 @@ import org.apache.lucene.store.AlreadyCl
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.store.LockObtainFailedException;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.NoSuchDirectoryException;
+import org.apache.lucene.store.RAMDirectory;
+import org.apache.lucene.store.LockReleaseFailedException;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.util.BytesRef;
@@ -82,7 +84,7 @@ public class TestIndexReader extends Luc
     }
     
     public void testCommitUserData() throws Exception {
-      MockRAMDirectory d = newDirectory(random);
+      Directory d = newDirectory(random);
 
       Map<String,String> commitUserData = new HashMap<String,String>();
       commitUserData.put("foo", "fighters");
@@ -137,7 +139,7 @@ public class TestIndexReader extends Luc
     }
     
     public void testIsCurrent() throws Exception {
-      MockRAMDirectory d = newDirectory(random);
+      Directory d = newDirectory(random);
       IndexWriter writer = new IndexWriter(d, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer()));
       addDocumentWithFields(writer);
@@ -166,7 +168,7 @@ public class TestIndexReader extends Luc
      * @throws Exception on error
      */
     public void testGetFieldNames() throws Exception {
-        MockRAMDirectory d = newDirectory(random);
+        Directory d = newDirectory(random);
         // set up writer
         IndexWriter writer = new IndexWriter(d, newIndexWriterConfig(random, 
             TEST_VERSION_CURRENT, new MockAnalyzer()));
@@ -258,7 +260,7 @@ public class TestIndexReader extends Luc
     }
 
   public void testTermVectors() throws Exception {
-    MockRAMDirectory d = newDirectory(random);
+    Directory d = newDirectory(random);
     // set up writer
     IndexWriter writer = new IndexWriter(d, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer()));
@@ -794,7 +796,7 @@ public class TestIndexReader extends Luc
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
       addDocumentWithFields(writer);
       writer.close();
-      writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.APPEND));
+      writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.APPEND));
       IndexReader reader = IndexReader.open(dir, false);
       try {
         reader.deleteDocument(0);
@@ -802,7 +804,11 @@ public class TestIndexReader extends Luc
       } catch(IOException e) {
         // expected exception
       }
-      IndexWriter.unlock(dir);		// this should not be done in the real world! 
+      try {
+        IndexWriter.unlock(dir);		// this should not be done in the real world! 
+      } catch (LockReleaseFailedException lrfe) {
+        writer.close();
+      }
       reader.deleteDocument(0);
       reader.close();
       writer.close();
@@ -881,7 +887,7 @@ public class TestIndexReader extends Luc
       int END_COUNT = 144;
       
       // First build up a starting index:
-      MockRAMDirectory startDir = newDirectory(random);
+      MockDirectoryWrapper startDir = newDirectory(random);
       IndexWriter writer = new IndexWriter(startDir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
       for(int i=0;i<157;i++) {
         Document d = new Document();
@@ -893,7 +899,7 @@ public class TestIndexReader extends Luc
       }
       writer.close();
 
-      long diskUsage = ((MockRAMDirectory) startDir).getRecomputedActualSizeInBytes();
+      long diskUsage = startDir.getRecomputedActualSizeInBytes();
       long diskFree = diskUsage+100;
 
       IOException err = null;
@@ -903,7 +909,7 @@ public class TestIndexReader extends Luc
 
       // Iterate w/ ever increasing free disk space:
       while(!done) {
-        MockRAMDirectory dir = new MockRAMDirectory(startDir);
+        MockDirectoryWrapper dir = new MockDirectoryWrapper(new RAMDirectory(startDir));
 
         // If IndexReader hits disk full, it can write to
         // the same files again.
@@ -1150,7 +1156,7 @@ public class TestIndexReader extends Luc
     }
 
     public void testMultiReaderDeletes() throws Exception {
-      Directory dir = new MockRAMDirectory();
+      Directory dir = newDirectory(random);
       RandomIndexWriter w = new RandomIndexWriter(random, dir);
       Document doc = new Document();
       doc.add(new Field("f", "doctor", Field.Store.NO, Field.Index.NOT_ANALYZED));
@@ -1417,7 +1423,7 @@ public class TestIndexReader extends Luc
 
     public void testGetIndexCommit() throws IOException {
 
-      MockRAMDirectory d = newDirectory(random);
+      Directory d = newDirectory(random);
 
       // set up writer
       IndexWriter writer = new IndexWriter(d, newIndexWriterConfig(random, 
@@ -1466,7 +1472,7 @@ public class TestIndexReader extends Luc
     }      
 
     public void testReadOnly() throws Throwable {
-      MockRAMDirectory d = newDirectory(random);
+      Directory d = newDirectory(random);
       IndexWriter writer = new IndexWriter(d, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer()));
       addDocumentWithFields(writer);
@@ -1553,7 +1559,7 @@ public class TestIndexReader extends Luc
 
   // LUCENE-1647
   public void testIndexReaderUnDeleteAll() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     dir.setPreventDoubleWrite(false);
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer()));

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java Mon Aug 23 17:00:43 2010
@@ -68,9 +68,9 @@ import org.apache.lucene.store.IndexInpu
 import org.apache.lucene.store.IndexOutput;
 import org.apache.lucene.store.Lock;
 import org.apache.lucene.store.LockFactory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.store.NoLockFactory;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.MockDirectoryWrapper;
+import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.store.SingleInstanceLockFactory;
 import org.apache.lucene.util.UnicodeUtil;
 import org.apache.lucene.util._TestUtil;
@@ -203,7 +203,7 @@ public class TestIndexWriter extends Luc
 
       // Now, build a starting index that has START_COUNT docs.  We
       // will then try to addIndexesNoOptimize into a copy of this:
-      MockRAMDirectory startDir = newDirectory(random);
+      MockDirectoryWrapper startDir = newDirectory(random);
       IndexWriter writer = new IndexWriter(startDir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
       for(int j=0;j<START_COUNT;j++) {
         addDocWithIndex(writer, j);
@@ -266,7 +266,7 @@ public class TestIndexWriter extends Luc
         while(!done) {
 
           // Make a new dir that will enforce disk usage:
-          MockRAMDirectory dir = new MockRAMDirectory(startDir);
+          MockDirectoryWrapper dir = new MockDirectoryWrapper(new RAMDirectory(startDir));
           writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.APPEND));
           IOException err = null;
 
@@ -477,7 +477,7 @@ public class TestIndexWriter extends Luc
         while(true) {
           if (VERBOSE)
             System.out.println("TEST: cycle: diskFree=" + diskFree);
-          MockRAMDirectory dir = newDirectory(random);
+          MockDirectoryWrapper dir = newDirectory(random);
           dir.setMaxSizeInBytes(diskFree);
           IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
           MergeScheduler ms = writer.getConfig().getMergeScheduler();
@@ -557,7 +557,7 @@ public class TestIndexWriter extends Luc
 
     public void testOptimizeMaxNumSegments() throws IOException {
 
-      MockRAMDirectory dir = newDirectory(random);
+      MockDirectoryWrapper dir = newDirectory(random);
 
       final Document doc = new Document();
       doc.add(new Field("content", "aaa", Field.Store.YES, Field.Index.ANALYZED));
@@ -598,7 +598,7 @@ public class TestIndexWriter extends Luc
     }
 
     public void testOptimizeMaxNumSegments2() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);
+      MockDirectoryWrapper dir = newDirectory(random);
 
       final Document doc = new Document();
       doc.add(new Field("content", "aaa", Field.Store.YES, Field.Index.ANALYZED));
@@ -646,7 +646,7 @@ public class TestIndexWriter extends Luc
      */
     public void testOptimizeTempSpaceUsage() throws IOException {
     
-      MockRAMDirectory dir = newDirectory(random);
+      MockDirectoryWrapper dir = newDirectory(random);
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10));
 
       for(int j=0;j<500;j++) {
@@ -721,7 +721,7 @@ public class TestIndexWriter extends Luc
     // gracefully fallback to the previous segments file),
     // and that we can add to the index:
     public void testSimulatedCrashedWriter() throws IOException {
-        MockRAMDirectory dir = newDirectory(random);
+        MockDirectoryWrapper dir = newDirectory(random);
         dir.setPreventDoubleWrite(false);
 
         IndexWriter writer = null;
@@ -946,7 +946,7 @@ public class TestIndexWriter extends Luc
      * and add docs to it.
      */
     public void testCommitOnCloseAbort() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10));
       for (int i = 0; i < 14; i++) {
         addDoc(writer);
@@ -1014,11 +1014,11 @@ public class TestIndexWriter extends Luc
      * Verify that a writer with "commit on close" indeed
      * cleans up the temp segments created after opening
      * that are not referenced by the starting segments
-     * file.  We check this by using MockRAMDirectory to
+     * file.  We check this by using MockDirectoryWrapper to
      * measure max temp disk space used.
      */
     public void testCommitOnCloseDiskUsage() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10));
       ((LogMergePolicy) writer.getMergePolicy()).setMergeFactor(10);
       for(int j=0;j<30;j++) {
@@ -1064,7 +1064,7 @@ public class TestIndexWriter extends Luc
      * and close().
      */
     public void testCommitOnCloseOptimize() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);  
+      MockDirectoryWrapper dir = newDirectory(random);  
       // Must disable throwing exc on double-write: this
       // test uses IW.rollback which easily results in
       // writing to same file more than once
@@ -1113,7 +1113,7 @@ public class TestIndexWriter extends Luc
     }
 
     public void testIndexNoDocuments() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
       writer.commit();
       writer.close();
@@ -1135,7 +1135,7 @@ public class TestIndexWriter extends Luc
     }
 
     public void testManyFields() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10));
       for(int j=0;j<100;j++) {
         Document doc = new Document();
@@ -1165,7 +1165,7 @@ public class TestIndexWriter extends Luc
     }
 
     public void testSmallRAMBuffer() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setRAMBufferSizeMB(0.000001));
       ((LogMergePolicy) writer.getMergePolicy()).setMergeFactor(10);
       int lastNumFile = dir.listAll().length;
@@ -1192,7 +1192,7 @@ public class TestIndexWriter extends Luc
      *             session won't be possible.
      */
     public void testChangingRAMBuffer() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random,
         TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10).setRAMBufferSizeMB(
         IndexWriterConfig.DISABLE_AUTO_FLUSH));
@@ -1250,7 +1250,7 @@ public class TestIndexWriter extends Luc
      *             changing those settings on IW won't be possible.
      */
     public void testChangingRAMBuffer2() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random,
         TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10).setMaxBufferedDeleteTerms(
         10).setRAMBufferSizeMB(IndexWriterConfig.DISABLE_AUTO_FLUSH));
@@ -1309,7 +1309,7 @@ public class TestIndexWriter extends Luc
     }
 
     public void testDiverseDocs() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setRAMBufferSizeMB(0.5));
       for(int i=0;i<3;i++) {
         // First, docs where every term is unique (heavy on
@@ -1356,7 +1356,7 @@ public class TestIndexWriter extends Luc
     }
 
     public void testEnablingNorms() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer  = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10));
       // Enable norms for only 1 doc, pre flush
       for(int j=0;j<10;j++) {
@@ -1402,7 +1402,7 @@ public class TestIndexWriter extends Luc
     }
 
     public void testHighFreqTerm() throws IOException {
-      MockRAMDirectory dir = newDirectory(random);      
+      MockDirectoryWrapper dir = newDirectory(random);      
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random,
           TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxFieldLength(100000000).setRAMBufferSizeMB(0.01));
       // Massive doc that has 128 K a's
@@ -1440,9 +1440,10 @@ public class TestIndexWriter extends Luc
     // compatibility.
     public void testNullLockFactory() throws IOException {
 
-      final class MyRAMDirectory extends MockRAMDirectory {
+      final class MyRAMDirectory extends MockDirectoryWrapper {
         private LockFactory myLockFactory;
-        MyRAMDirectory() {
+        MyRAMDirectory(Directory delegate) {
+          super(delegate);
           lockFactory = null;
           myLockFactory = new SingleInstanceLockFactory();
         }
@@ -1452,7 +1453,7 @@ public class TestIndexWriter extends Luc
         }
       }
       
-      Directory dir = new MyRAMDirectory();
+      Directory dir = new MyRAMDirectory(new RAMDirectory());
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random,
         TEST_VERSION_CURRENT, new MockAnalyzer()));
       for (int i = 0; i < 100; i++) {
@@ -1569,7 +1570,7 @@ public class TestIndexWriter extends Luc
    *
    */
   public void testBadSegment() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(random,
         TEST_VERSION_CURRENT, new MockAnalyzer()));
     
@@ -1582,7 +1583,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1008
   public void testNoTermVectorAfterTermVector() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(random,
         TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document document = new Document();
@@ -1609,7 +1610,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1010
   public void testNoTermVectorAfterTermVectorMerge() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter iw = new IndexWriter(dir, newIndexWriterConfig(random,
         TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document document = new Document();
@@ -1642,7 +1643,7 @@ public class TestIndexWriter extends Luc
   public void testMaxThreadPriority() throws IOException {
     int pri = Thread.currentThread().getPriority();
     try {
-      MockRAMDirectory dir = newDirectory(random);
+      Directory dir = newDirectory(random);
       IndexWriterConfig conf = newIndexWriterConfig(random,
           TEST_VERSION_CURRENT, new MockAnalyzer())
           .setMaxBufferedDocs(2);
@@ -1684,7 +1685,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1013
   public void testSetMaxMergeDocs() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriterConfig conf = newIndexWriterConfig(random,
         TEST_VERSION_CURRENT, new MockAnalyzer())
         .setMergeScheduler(new MyMergeScheduler()).setMaxBufferedDocs(2);
@@ -1703,7 +1704,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1072
   public void testExceptionFromTokenStream() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriterConfig conf = newIndexWriterConfig(random, TEST_VERSION_CURRENT, new Analyzer() {
 
       @Override
@@ -1769,7 +1770,7 @@ public class TestIndexWriter extends Luc
     dir.close();
   }
 
-  private static class FailOnlyOnFlush extends MockRAMDirectory.Failure {
+  private static class FailOnlyOnFlush extends MockDirectoryWrapper.Failure {
     boolean doFail = false;
     int count;
 
@@ -1783,7 +1784,7 @@ public class TestIndexWriter extends Luc
     }
 
     @Override
-    public void eval(MockRAMDirectory dir)  throws IOException {
+    public void eval(MockDirectoryWrapper dir)  throws IOException {
       if (doFail) {
         StackTraceElement[] trace = new Exception().getStackTrace();
         boolean sawAppend = false;
@@ -1806,7 +1807,7 @@ public class TestIndexWriter extends Luc
   // LUCENE-1072: make sure an errant exception on flushing
   // one segment only takes out those docs in that one flush
   public void testDocumentsWriterAbort() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     FailOnlyOnFlush failure = new FailOnlyOnFlush();
     failure.setDoFail();
     dir.failOn(failure);
@@ -1866,7 +1867,7 @@ public class TestIndexWriter extends Luc
     };
 
     for(int i=0;i<2;i++) {
-      MockRAMDirectory dir = newDirectory(random);
+      MockDirectoryWrapper dir = newDirectory(random);
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, analyzer));
       //writer.setInfoStream(System.out);
       Document doc = new Document();
@@ -1951,7 +1952,7 @@ public class TestIndexWriter extends Luc
     final int NUM_ITER = 100;
 
     for(int i=0;i<2;i++) {
-      MockRAMDirectory dir = newDirectory(random);
+      MockDirectoryWrapper dir = newDirectory(random);
 
       {
         final IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, analyzer).setMaxBufferedDocs(-1));
@@ -2051,7 +2052,7 @@ public class TestIndexWriter extends Luc
   }
 
   public void testVariableSchema() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     int delID = 0;
     for(int i=0;i<20;i++) {
       IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(2));
@@ -2103,7 +2104,7 @@ public class TestIndexWriter extends Luc
   }
 
   public void testNoWaitClose() throws Throwable {
-    MockRAMDirectory directory = newDirectory(random);
+    Directory directory = newDirectory(random);
 
     final Document doc = new Document();
     Field idField = new Field("id", "", Field.Store.YES, Field.Index.NOT_ANALYZED);
@@ -2259,7 +2260,7 @@ public class TestIndexWriter extends Luc
     int NUM_THREADS = 3;
 
     for(int iter=0;iter<7;iter++) {
-      MockRAMDirectory dir = newDirectory(random);
+      Directory dir = newDirectory(random);
       IndexWriterConfig conf = newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer())
         .setMaxBufferedDocs(10).setMergeScheduler(new ConcurrentMergeScheduler());
       // We expect AlreadyClosedException
@@ -2318,7 +2319,7 @@ public class TestIndexWriter extends Luc
   // an IndexWriter (hit during DW.ThreadState.init()) is
   // OK:
   public void testImmediateDiskFull() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer())
         .setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler()));
     dir.setMaxSizeInBytes(Math.max(1, dir.getRecomputedActualSizeInBytes()));
@@ -2356,7 +2357,7 @@ public class TestIndexWriter extends Luc
     int NUM_THREADS = 3;
 
     for(int iter=0;iter<10;iter++) {
-      MockRAMDirectory dir = newDirectory(random);
+      MockDirectoryWrapper dir = newDirectory(random);
       IndexWriterConfig conf = newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer())
         .setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler());
       // We expect disk full exceptions in the merge threads
@@ -2389,13 +2390,13 @@ public class TestIndexWriter extends Luc
   }
 
   // Throws IOException during FieldsWriter.flushDocument and during DocumentsWriter.abort
-  private static class FailOnlyOnAbortOrFlush extends MockRAMDirectory.Failure {
+  private static class FailOnlyOnAbortOrFlush extends MockDirectoryWrapper.Failure {
     private boolean onlyOnce;
     public FailOnlyOnAbortOrFlush(boolean onlyOnce) {
       this.onlyOnce = onlyOnce;
     }
     @Override
-    public void eval(MockRAMDirectory dir)  throws IOException {
+    public void eval(MockDirectoryWrapper dir)  throws IOException {
       if (doFail) {
         StackTraceElement[] trace = new Exception().getStackTrace();
         for (int i = 0; i < trace.length; i++) {
@@ -2414,8 +2415,8 @@ public class TestIndexWriter extends Luc
 
   // Runs test, with one thread, using the specific failure
   // to trigger an IOException
-  public void _testSingleThreadFailure(MockRAMDirectory.Failure failure) throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+  public void _testSingleThreadFailure(MockDirectoryWrapper.Failure failure) throws IOException {
+    MockDirectoryWrapper dir = newDirectory(random);
 
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer())
       .setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler()));
@@ -2442,12 +2443,12 @@ public class TestIndexWriter extends Luc
 
   // Runs test, with multiple threads, using the specific
   // failure to trigger an IOException
-  public void _testMultipleThreadsFailure(MockRAMDirectory.Failure failure) throws Exception {
+  public void _testMultipleThreadsFailure(MockDirectoryWrapper.Failure failure) throws Exception {
 
     int NUM_THREADS = 3;
 
     for(int iter=0;iter<2;iter++) {
-      MockRAMDirectory dir = newDirectory(random);
+      MockDirectoryWrapper dir = newDirectory(random);
       IndexWriterConfig conf = newIndexWriterConfig(random, TEST_VERSION_CURRENT,
           new MockAnalyzer()).setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler());
       // We expect disk full exceptions in the merge threads
@@ -2523,13 +2524,13 @@ public class TestIndexWriter extends Luc
   }
 
   // Throws IOException during DocumentsWriter.closeDocStore
-  private static class FailOnlyInCloseDocStore extends MockRAMDirectory.Failure {
+  private static class FailOnlyInCloseDocStore extends MockDirectoryWrapper.Failure {
     private boolean onlyOnce;
     public FailOnlyInCloseDocStore(boolean onlyOnce) {
       this.onlyOnce = onlyOnce;
     }
     @Override
-    public void eval(MockRAMDirectory dir)  throws IOException {
+    public void eval(MockDirectoryWrapper dir)  throws IOException {
       if (doFail) {
         StackTraceElement[] trace = new Exception().getStackTrace();
         for (int i = 0; i < trace.length; i++) {
@@ -2564,13 +2565,13 @@ public class TestIndexWriter extends Luc
   }
 
   // Throws IOException during DocumentsWriter.writeSegment
-  private static class FailOnlyInWriteSegment extends MockRAMDirectory.Failure {
+  private static class FailOnlyInWriteSegment extends MockDirectoryWrapper.Failure {
     private boolean onlyOnce;
     public FailOnlyInWriteSegment(boolean onlyOnce) {
       this.onlyOnce = onlyOnce;
     }
     @Override
-    public void eval(MockRAMDirectory dir)  throws IOException {
+    public void eval(MockDirectoryWrapper dir)  throws IOException {
       if (doFail) {
         StackTraceElement[] trace = new Exception().getStackTrace();
         for (int i = 0; i < trace.length; i++) {
@@ -2702,15 +2703,15 @@ public class TestIndexWriter extends Luc
     dir.close();
   }
 
-  // Throws IOException during MockRAMDirectory.sync
-  private static class FailOnlyInSync extends MockRAMDirectory.Failure {
+  // Throws IOException during MockDirectoryWrapper.sync
+  private static class FailOnlyInSync extends MockDirectoryWrapper.Failure {
     boolean didFail;
     @Override
-    public void eval(MockRAMDirectory dir)  throws IOException {
+    public void eval(MockDirectoryWrapper dir)  throws IOException {
       if (doFail) {
         StackTraceElement[] trace = new Exception().getStackTrace();
         for (int i = 0; i < trace.length; i++) {
-          if (doFail && "org.apache.lucene.store.MockRAMDirectory".equals(trace[i].getClassName()) && "sync".equals(trace[i].getMethodName())) {
+          if (doFail && "org.apache.lucene.store.MockDirectoryWrapper".equals(trace[i].getClassName()) && "sync".equals(trace[i].getMethodName())) {
             didFail = true;
             throw new IOException("now failing on purpose during sync");
           }
@@ -2721,7 +2722,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1044: test exception during sync
   public void testExceptionDuringSync() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     FailOnlyInSync failure = new FailOnlyInSync();
     dir.failOn(failure);
 
@@ -2796,7 +2797,7 @@ public class TestIndexWriter extends Luc
           .setMergeScheduler(new SerialMergeScheduler()).setMergePolicy(
               new LogDocMergePolicy()));
 
-      Directory[] indexDirs = {new MockRAMDirectory(dir)};
+      Directory[] indexDirs = {new MockDirectoryWrapper(new RAMDirectory(dir))};
       writer.addIndexes(indexDirs);
       writer.optimize();
       writer.close();
@@ -3042,7 +3043,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1179
   public void testEmptyFieldName() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
     doc.add(new Field("", "a b c", Field.Store.NO, Field.Index.ANALYZED));
@@ -3070,7 +3071,7 @@ public class TestIndexWriter extends Luc
   
 
   public void testExceptionDocumentsWriterInit() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     MockIndexWriter w = new MockIndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
     doc.add(new Field("field", "a field", Field.Store.YES,
@@ -3090,7 +3091,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1208
   public void testExceptionJustBeforeFlush() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     MockIndexWriter w = new MockIndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(2));
     Document doc = new Document();
     doc.add(new Field("field", "a field", Field.Store.YES,
@@ -3140,7 +3141,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1210
   public void testExceptionOnMergeInit() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriterConfig conf = newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer())
       .setMaxBufferedDocs(2).setMergeScheduler(new ConcurrentMergeScheduler());
     ((LogMergePolicy) conf.getMergePolicy()).setMergeFactor(2);
@@ -3185,7 +3186,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1222
   public void testDoBeforeAfterFlush() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     MockIndexWriter3 w = new MockIndexWriter3(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
     doc.add(new Field("field", "a field", Field.Store.YES,
@@ -3210,19 +3211,19 @@ public class TestIndexWriter extends Luc
     dir.close();
   }
 
-  private static class FailOnlyInCommit extends MockRAMDirectory.Failure {
+  private static class FailOnlyInCommit extends MockDirectoryWrapper.Failure {
 
     boolean fail1, fail2;
 
     @Override
-    public void eval(MockRAMDirectory dir)  throws IOException {
+    public void eval(MockDirectoryWrapper dir)  throws IOException {
       StackTraceElement[] trace = new Exception().getStackTrace();
       boolean isCommit = false;
       boolean isDelete = false;
       for (int i = 0; i < trace.length; i++) {
         if ("org.apache.lucene.index.SegmentInfos".equals(trace[i].getClassName()) && "prepareCommit".equals(trace[i].getMethodName()))
           isCommit = true;
-        if ("org.apache.lucene.store.MockRAMDirectory".equals(trace[i].getClassName()) && "deleteFile".equals(trace[i].getMethodName()))
+        if ("org.apache.lucene.store.MockDirectoryWrapper".equals(trace[i].getClassName()) && "deleteFile".equals(trace[i].getMethodName()))
           isDelete = true;
       }
 
@@ -3241,7 +3242,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1214
   public void testExceptionsDuringCommit() throws Throwable {
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     FailOnlyInCommit failure = new FailOnlyInCommit();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
@@ -3290,7 +3291,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-510
   public void testInvalidUTF16() throws Throwable {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
 
@@ -3500,7 +3501,7 @@ public class TestIndexWriter extends Luc
       }
     };
 
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
     doc.add(new Field("field", tokens));
@@ -3587,7 +3588,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1274: test writer.prepareCommit()
   public void testPrepareCommitRollback() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     dir.setPreventDoubleWrite(false);
 
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(2));
@@ -3640,7 +3641,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1274
   public void testPrepareCommitNoChanges() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
 
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     writer.prepareCommit();
@@ -3667,7 +3668,7 @@ public class TestIndexWriter extends Luc
 
     public RunAddIndexesThreads(int numCopy) throws Throwable {
       NUM_COPY = numCopy;
-      dir = new MockRAMDirectory();
+      dir = new MockDirectoryWrapper(new RAMDirectory());
       IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
           TEST_VERSION_CURRENT, new MockAnalyzer())
           .setMaxBufferedDocs(2));
@@ -3675,7 +3676,7 @@ public class TestIndexWriter extends Luc
         addDoc(writer);
       writer.close();
 
-      dir2 = new MockRAMDirectory();
+      dir2 = new MockDirectoryWrapper(new RAMDirectory());
       writer2 = new IndexWriter(dir2, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()));
       writer2.commit();
 
@@ -3694,7 +3695,7 @@ public class TestIndexWriter extends Luc
 
                 final Directory[] dirs = new Directory[NUM_COPY];
                 for(int k=0;k<NUM_COPY;k++)
-                  dirs[k] = new MockRAMDirectory(dir);
+                  dirs[k] = new MockDirectoryWrapper(new RAMDirectory(dir));
 
                 int j=0;
 
@@ -3946,7 +3947,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1347
   public void testRollbackExceptionHang() throws Throwable {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     MockIndexWriter4 w = new MockIndexWriter4(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
 
     addDoc(w);
@@ -3966,7 +3967,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1219
   public void testBinaryFieldOffsetLength() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     byte[] b = new byte[50];
     for(int i=0;i<50;i++)
@@ -4033,7 +4034,7 @@ public class TestIndexWriter extends Luc
   }
 
   public void testOptimizeExceptions() throws IOException {
-    MockRAMDirectory startDir = newDirectory(random);
+    Directory startDir = newDirectory(random);
     IndexWriterConfig conf = newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(2);
     ((LogMergePolicy) conf.getMergePolicy()).setMergeFactor(100);
     IndexWriter w = new IndexWriter(startDir, conf);
@@ -4042,7 +4043,7 @@ public class TestIndexWriter extends Luc
     w.close();
 
     for(int i=0;i<200;i++) {
-      MockRAMDirectory dir = new MockRAMDirectory(startDir);
+      MockDirectoryWrapper dir = new MockDirectoryWrapper(new RAMDirectory(startDir));
       conf = newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMergeScheduler(new ConcurrentMergeScheduler());
       ((ConcurrentMergeScheduler) conf.getMergeScheduler()).setSuppressExceptions();
       w = new IndexWriter(dir, conf);
@@ -4091,7 +4092,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1442
   public void testDoubleOffsetCounting() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
@@ -4127,7 +4128,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1442
   public void testDoubleOffsetCounting2() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
     Field f = new Field("field", "abcd", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS);
@@ -4149,7 +4150,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1448
   public void testEndOffsetPositionCharAnalyzer() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
     Field f = new Field("field", "abcd   ", Field.Store.NO, Field.Index.ANALYZED, Field.TermVector.WITH_POSITIONS_OFFSETS);
@@ -4171,7 +4172,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1448
   public void testEndOffsetPositionWithCachingTokenFilter() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     Analyzer analyzer = new MockAnalyzer();
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, analyzer));
     Document doc = new Document();
@@ -4195,7 +4196,7 @@ public class TestIndexWriter extends Luc
   
   // LUCENE-1448
   public void testEndOffsetPositionStopFilter() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.SIMPLE, true, MockTokenFilter.ENGLISH_STOPSET, true)));
     Document doc = new Document();
@@ -4218,7 +4219,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1448
   public void testEndOffsetPositionStandard() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
@@ -4249,7 +4250,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1448
   public void testEndOffsetPositionStandardEmptyField() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
@@ -4277,7 +4278,7 @@ public class TestIndexWriter extends Luc
 
   // LUCENE-1448
   public void testEndOffsetPositionStandardEmptyField2() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, 
         TEST_VERSION_CURRENT, new MockAnalyzer()));
     Document doc = new Document();
@@ -4331,7 +4332,7 @@ public class TestIndexWriter extends Luc
   }
 
   public void testDeadlock() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(2));
     Document doc = new Document();
     doc.add(new Field("content", "aaa bbb ccc ddd eee fff ggg hhh iii", Field.Store.YES,
@@ -4342,7 +4343,7 @@ public class TestIndexWriter extends Luc
     writer.commit();
     // index has 2 segments
 
-    MockRAMDirectory dir2 = newDirectory(random);
+    Directory dir2 = newDirectory(random);
     IndexWriter writer2 = new IndexWriter(dir2, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     writer2.addDocument(doc);
     writer2.close();
@@ -4371,7 +4372,7 @@ public class TestIndexWriter extends Luc
 
     @Override
     public void run() {
-      MockRAMDirectory dir;
+      Directory dir;
       try { 
         dir = newDirectory(random); 
       } catch (IOException e) { throw new RuntimeException(e); }
@@ -4470,7 +4471,11 @@ public class TestIndexWriter extends Luc
           e.printStackTrace(System.out);
         }
       }
-      dir.close();
+      try { 
+        dir.close();
+      } catch (IOException e) { 
+        throw new RuntimeException(e); 
+      }
     }
   }
 
@@ -4501,7 +4506,7 @@ public class TestIndexWriter extends Luc
 
 
   public void testIndexStoreCombos() throws Exception {
-    MockRAMDirectory dir = newDirectory(random);
+    Directory dir = newDirectory(random);
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     byte[] b = new byte[50];
     for(int i=0;i<50;i++)
@@ -5204,12 +5209,12 @@ public class TestIndexWriter extends Luc
     _TestUtil.rmDir(index);
   }
 
-  private static class FailTwiceDuringMerge extends MockRAMDirectory.Failure {
+  private static class FailTwiceDuringMerge extends MockDirectoryWrapper.Failure {
     public boolean didFail1;
     public boolean didFail2;
 
     @Override
-    public void eval(MockRAMDirectory dir)  throws IOException {
+    public void eval(MockDirectoryWrapper dir)  throws IOException {
       if (!doFail) {
         return;
       }
@@ -5229,7 +5234,7 @@ public class TestIndexWriter extends Luc
   
   // LUCENE-2593
   public void testCorruptionAfterDiskFullDuringMerge() throws IOException {
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     final Random rand = random;
     //IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(rand, TEST_VERSION_CURRENT, new MockAnalyzer()).setReaderPooling(true));
     IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(rand, TEST_VERSION_CURRENT, new MockAnalyzer()).setMergeScheduler(new SerialMergeScheduler()).setReaderPooling(true));

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterConfig.java Mon Aug 23 17:00:43 2010
@@ -34,7 +34,6 @@ import org.apache.lucene.index.codecs.Co
 import org.apache.lucene.search.DefaultSimilarity;
 import org.apache.lucene.search.Similarity;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCaseJ4;
 import org.junit.Test;
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Mon Aug 23 17:00:43 2010
@@ -28,7 +28,8 @@ import org.apache.lucene.search.IndexSea
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.MockDirectoryWrapper;
+import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 
@@ -423,7 +424,7 @@ public class TestIndexWriterDelete exten
     int END_COUNT = 144;
 
     // First build up a starting index:
-    MockRAMDirectory startDir = newDirectory(random);
+    MockDirectoryWrapper startDir = newDirectory(random);
     // TODO: find the resource leak that only occurs sometimes here.
     startDir.setNoDeleteOpenFile(false);
     IndexWriter writer = new IndexWriter(startDir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.WHITESPACE, false)));
@@ -446,7 +447,7 @@ public class TestIndexWriterDelete exten
 
     // Iterate w/ ever increasing free disk space:
     while (!done) {
-      MockRAMDirectory dir = new MockRAMDirectory(startDir);
+      MockDirectoryWrapper dir = new MockDirectoryWrapper(new RAMDirectory(startDir));
       dir.setPreventDoubleWrite(false);
       IndexWriter modifier = new IndexWriter(dir,
                                              newIndexWriterConfig(random,
@@ -599,34 +600,34 @@ public class TestIndexWriterDelete exten
         }
         searcher.close();
         newReader.close();
-        dir.close();
         if (result2 == END_COUNT) {
           break;
         }
       }
+      dir.close();
       modifier.close();
-      startDir.close();
 
       // Try again with 10 more bytes of free space:
       diskFree += 10;
     }
+    startDir.close();
   }
 
   // This test tests that buffered deletes are cleared when
   // an Exception is hit during flush.
   public void testErrorAfterApplyDeletes() throws IOException {
     
-    MockRAMDirectory.Failure failure = new MockRAMDirectory.Failure() {
+    MockDirectoryWrapper.Failure failure = new MockDirectoryWrapper.Failure() {
         boolean sawMaybe = false;
         boolean failed = false;
         @Override
-        public MockRAMDirectory.Failure reset() {
+        public MockDirectoryWrapper.Failure reset() {
           sawMaybe = false;
           failed = false;
           return this;
         }
         @Override
-        public void eval(MockRAMDirectory dir)  throws IOException {
+        public void eval(MockDirectoryWrapper dir)  throws IOException {
           if (sawMaybe && !failed) {
             boolean seen = false;
             StackTraceElement[] trace = new Exception().getStackTrace();
@@ -662,7 +663,7 @@ public class TestIndexWriterDelete exten
         "Venice has lots of canals" };
     String[] text = { "Amsterdam", "Venice" };
 
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     IndexWriter modifier = new IndexWriter(dir, newIndexWriterConfig(random,
                                                                      TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.WHITESPACE, false)).setMaxBufferedDeleteTerms(2).setReaderPooling(false));
     LogMergePolicy lmp = (LogMergePolicy) modifier.getConfig().getMergePolicy();
@@ -748,15 +749,15 @@ public class TestIndexWriterDelete exten
 
   public void testErrorInDocsWriterAdd() throws IOException {
     
-    MockRAMDirectory.Failure failure = new MockRAMDirectory.Failure() {
+    MockDirectoryWrapper.Failure failure = new MockDirectoryWrapper.Failure() {
         boolean failed = false;
         @Override
-        public MockRAMDirectory.Failure reset() {
+        public MockDirectoryWrapper.Failure reset() {
           failed = false;
           return this;
         }
         @Override
-        public void eval(MockRAMDirectory dir)  throws IOException {
+        public void eval(MockDirectoryWrapper dir)  throws IOException {
           if (!failed) {
             failed = true;
             throw new IOException("fail in add doc");
@@ -772,7 +773,7 @@ public class TestIndexWriterDelete exten
         "Venice has lots of canals" };
     String[] text = { "Amsterdam", "Venice" };
 
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     IndexWriter modifier = new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer(MockTokenizer.WHITESPACE, false)));
     modifier.commit();
     dir.failOn(failure.reset());

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterExceptions.java Mon Aug 23 17:00:43 2010
@@ -22,8 +22,8 @@ import java.io.IOException;
 
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
@@ -130,7 +130,7 @@ public class TestIndexWriterExceptions e
 
   public void testRandomExceptions() throws Throwable {
     Random random = newRandom();
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
 
     MockIndexWriter writer  = new MockIndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer())
         .setRAMBufferSizeMB(0.1).setMergeScheduler(new ConcurrentMergeScheduler()));
@@ -171,7 +171,7 @@ public class TestIndexWriterExceptions e
 
   public void testRandomExceptionsThreads() throws Throwable {
     Random random = newRandom();
-    MockRAMDirectory dir = newDirectory(random);
+    MockDirectoryWrapper dir = newDirectory(random);
     MockIndexWriter writer  = new MockIndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer())
         .setRAMBufferSizeMB(0.2).setMergeScheduler(new ConcurrentMergeScheduler()));
     ((ConcurrentMergeScheduler) writer.getConfig().getMergeScheduler()).setSuppressExceptions();

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterMerging.java Mon Aug 23 17:00:43 2010
@@ -16,7 +16,6 @@ package org.apache.lucene.index;
  */
 
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriterReader.java Mon Aug 23 17:00:43 2010
@@ -34,8 +34,9 @@ import org.apache.lucene.search.IndexSea
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.MockDirectoryWrapper;
 import org.apache.lucene.store.AlreadyClosedException;
+import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.util.BytesRef;
@@ -355,7 +356,7 @@ public class TestIndexWriterReader exten
             try {
               final Directory[] dirs = new Directory[numDirs];
               for (int k = 0; k < numDirs; k++)
-                dirs[k] = new MockRAMDirectory(addDir);
+                dirs[k] = new MockDirectoryWrapper(new RAMDirectory(addDir));
               //int j = 0;
               //while (true) {
                 // System.out.println(Thread.currentThread().getName() + ": iter
@@ -631,7 +632,7 @@ public class TestIndexWriterReader exten
 
     final Directory[] dirs = new Directory[10];
     for (int i=0;i<10;i++) {
-      dirs[i] = new MockRAMDirectory(dir1);
+      dirs[i] = new MockDirectoryWrapper(new RAMDirectory(dir1));
     }
 
     IndexReader r = writer.getReader();

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyBug.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyBug.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyBug.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyBug.java Mon Aug 23 17:00:43 2010
@@ -31,7 +31,6 @@ import org.apache.lucene.document.FieldS
 import org.apache.lucene.document.FieldSelectorResult;
 import org.apache.lucene.document.Fieldable;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestLazyProxSkipping.java Mon Aug 23 17:00:43 2010
@@ -29,7 +29,8 @@ import org.apache.lucene.search.ScoreDoc
 import org.apache.lucene.search.Searcher;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IndexInput;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.MockDirectoryWrapper;
+import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.BytesRef;
 
@@ -46,7 +47,11 @@ public class TestLazyProxSkipping extend
     private String term2 = "yy";
     private String term3 = "zz";
 
-    private class SeekCountingDirectory extends MockRAMDirectory {
+    private class SeekCountingDirectory extends MockDirectoryWrapper {
+      public SeekCountingDirectory(Directory delegate) {
+        super(delegate);
+      }
+
       @Override
       public IndexInput openInput(String name) throws IOException {
         IndexInput ii = super.openInput(name);
@@ -56,12 +61,13 @@ public class TestLazyProxSkipping extend
         }
         return ii;
       }
+      
     }
     
     private void createIndex(Random random, int numHits) throws IOException {
         int numDocs = 500;
         
-        Directory directory = new SeekCountingDirectory();
+        Directory directory = new SeekCountingDirectory(new RAMDirectory());
         IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setMaxBufferedDocs(10));
         ((LogMergePolicy) writer.getConfig().getMergePolicy()).setUseCompoundFile(false);
         ((LogMergePolicy) writer.getConfig().getMergePolicy()).setUseCompoundDocStore(false);

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java Mon Aug 23 17:00:43 2010
@@ -31,7 +31,8 @@ import org.apache.lucene.document.Field.
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.IndexInput;
-import org.apache.lucene.store.MockRAMDirectory;
+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.apache.lucene.util.BytesRef;
@@ -46,7 +47,11 @@ import org.apache.lucene.util.BytesRef;
  */
 public class TestMultiLevelSkipList extends LuceneTestCase {
   
-  class CountingRAMDirectory extends MockRAMDirectory {
+  class CountingRAMDirectory extends MockDirectoryWrapper {
+    public CountingRAMDirectory(Directory delegate) {
+      super(delegate);
+    }
+
     public IndexInput openInput(String fileName) throws IOException {
       IndexInput in = super.openInput(fileName);
       if (fileName.endsWith(".frq"))
@@ -56,7 +61,7 @@ public class TestMultiLevelSkipList exte
   }
 
   public void testSimpleSkip() throws IOException {
-    Directory dir = new CountingRAMDirectory();
+    Directory dir = new CountingRAMDirectory(new RAMDirectory());
     IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(newRandom(), TEST_VERSION_CURRENT, new PayloadAnalyzer()).setCodecProvider(_TestUtil.alwaysCodec("Standard")));
     Term term = new Term("test", "a");
     for (int i = 0; i < 5000; i++) {

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNRTReaderWithThreads.java Mon Aug 23 17:00:43 2010
@@ -23,7 +23,6 @@ import java.util.concurrent.atomic.Atomi
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 
 public class TestNRTReaderWithThreads extends LuceneTestCase {

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNewestSegment.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNewestSegment.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNewestSegment.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNewestSegment.java Mon Aug 23 17:00:43 2010
@@ -22,14 +22,13 @@ import java.util.Random;
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.index.IndexWriter.MaxFieldLength;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 
 public class TestNewestSegment extends LuceneTestCase {
   public void testNewestSegment() throws Exception {
     Random random = newRandom();
-    MockRAMDirectory directory = newDirectory(random);
-    Analyzer analyzer = new MockAnalyzer();
+    Directory directory = newDirectory(random);
     IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     assertNull(writer.newestSegment());
     writer.close();

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNoDeletionPolicy.java Mon Aug 23 17:00:43 2010
@@ -31,7 +31,6 @@ import org.apache.lucene.document.Field;
 import org.apache.lucene.document.Field.Index;
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCaseJ4;
 import org.junit.Test;
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNorms.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNorms.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNorms.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestNorms.java Mon Aug 23 17:00:43 2010
@@ -31,7 +31,6 @@ import org.apache.lucene.index.IndexWrit
 import org.apache.lucene.search.DefaultSimilarity;
 import org.apache.lucene.search.Similarity;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 
 /**

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReader.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReader.java Mon Aug 23 17:00:43 2010
@@ -30,12 +30,9 @@ import org.apache.lucene.search.BooleanQ
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.Searcher;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 
 public class TestParallelReader extends LuceneTestCase {

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelReaderEmptyIndex.java Mon Aug 23 17:00:43 2010
@@ -20,6 +20,7 @@ package org.apache.lucene.index;
 import java.io.IOException;
 import java.util.Random;
 
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
 
@@ -30,8 +31,6 @@ import org.apache.lucene.document.Field.
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.document.Field.TermVector;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
-import org.apache.lucene.store.MockRAMDirectory;
-import org.apache.lucene.store.MockRAMDirectory;
 
 /**
  * Some tests for {@link ParallelReader}s with empty indexes
@@ -48,13 +47,13 @@ public class TestParallelReaderEmptyInde
    */
   public void testEmptyIndex() throws IOException {
     Random random = newRandom();
-    MockRAMDirectory rd1 = newDirectory(random);
+    Directory rd1 = newDirectory(random);
     IndexWriter iw = new IndexWriter(rd1, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     iw.close();
 
-    MockRAMDirectory rd2 = newDirectory(random, rd1);
+    Directory rd2 = newDirectory(random, rd1);
 
-    MockRAMDirectory rdOut = newDirectory(random);
+    Directory rdOut = newDirectory(random);
 
     IndexWriter iwOut = new IndexWriter(rdOut, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     ParallelReader pr = new ParallelReader();
@@ -79,7 +78,7 @@ public class TestParallelReaderEmptyInde
    */
   public void testEmptyIndexWithVectors() throws IOException {
     Random random = newRandom();
-    MockRAMDirectory rd1 = newDirectory(random);
+    Directory rd1 = newDirectory(random);
     {
       IndexWriter iw = new IndexWriter(rd1, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
       Document doc = new Document();
@@ -100,7 +99,7 @@ public class TestParallelReaderEmptyInde
       iw.close();
     }
 
-    MockRAMDirectory rd2 = newDirectory(random);
+    Directory rd2 = newDirectory(random);
     {
       IndexWriter iw = new IndexWriter(rd2, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
       Document doc = new Document();
@@ -108,7 +107,7 @@ public class TestParallelReaderEmptyInde
       iw.close();
     }
 
-    MockRAMDirectory rdOut = newDirectory(random);
+    Directory rdOut = newDirectory(random);
 
     IndexWriter iwOut = new IndexWriter(rdOut, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()));
     ParallelReader pr = new ParallelReader();

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestParallelTermEnum.java Mon Aug 23 17:00:43 2010
@@ -26,14 +26,14 @@ import org.apache.lucene.document.Docume
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.Field.Index;
 import org.apache.lucene.document.Field.Store;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Bits;
 
 public class TestParallelTermEnum extends LuceneTestCase {
     private IndexReader ir1;
     private IndexReader ir2;
-    private MockRAMDirectory rd1;
-    private MockRAMDirectory rd2;
+    private Directory rd1;
+    private Directory rd2;
     
     @Override
     protected void setUp() throws Exception {

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloadProcessorProvider.java Mon Aug 23 17:00:43 2010
@@ -37,7 +37,6 @@ import org.apache.lucene.index.PayloadPr
 import org.apache.lucene.index.PayloadProcessorProvider.PayloadProcessor;
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCaseJ4;
 import org.junit.Test;

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloads.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloads.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloads.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestPayloads.java Mon Aug 23 17:00:43 2010
@@ -39,7 +39,6 @@ import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.LuceneTestCase;

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentMerger.java Mon Aug 23 17:00:43 2010
@@ -20,7 +20,6 @@ package org.apache.lucene.index;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.store.BufferedIndexInput;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.index.codecs.CodecProvider;
 import org.apache.lucene.util.BytesRef;

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSegmentReader.java Mon Aug 23 17:00:43 2010
@@ -28,10 +28,10 @@ import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Fieldable;
 import org.apache.lucene.search.Similarity;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.Directory;
 
 public class TestSegmentReader extends LuceneTestCase {
-  private MockRAMDirectory dir;
+  private Directory dir;
   private Document testDoc = new Document();
   private SegmentReader reader = null;
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestSnapshotDeletionPolicy.java Mon Aug 23 17:00:43 2010
@@ -13,7 +13,6 @@ import org.apache.lucene.document.Field;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.store.IndexInput;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.index.IndexCommit;
 import org.apache.lucene.index.IndexWriterConfig;
@@ -102,7 +101,7 @@ public class TestSnapshotDeletionPolicy 
       _TestUtil.rmDir(dir);
     }
 
-    MockRAMDirectory dir2 = newDirectory(random);
+    Directory dir2 = newDirectory(random);
     runTest(random, dir2);
     dir2.close();
   }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestStressIndexing2.java Mon Aug 23 17:00:43 2010
@@ -35,7 +35,6 @@ import org.apache.lucene.document.Fielda
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 
 public class TestStressIndexing2 extends MultiCodecTestCase {
   static int maxFields=4;

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java Mon Aug 23 17:00:43 2010
@@ -32,7 +32,7 @@ import org.apache.lucene.analysis.tokena
 import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.store.MockRAMDirectory;
+import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
 
@@ -44,7 +44,7 @@ public class TestTermVectorsReader exten
   private String[] testTerms = {"this", "is", "a", "test"};
   private int[][] positions = new int[testTerms.length][];
   private TermVectorOffsetInfo[][] offsets = new TermVectorOffsetInfo[testTerms.length][];
-  private MockRAMDirectory dir;
+  private Directory dir;
   private String seg;
   private FieldInfos fieldInfos = new FieldInfos();
   private static int TERM_FREQ = 3;
@@ -171,7 +171,7 @@ public class TestTermVectorsReader exten
     }
   }
 
-  public void test() {
+  public void test() throws IOException {
     //Check to see the files were created properly in setup
     assertTrue(dir.fileExists(IndexFileNames.segmentFileName(seg, "", IndexFileNames.VECTORS_DOCUMENTS_EXTENSION)));
     assertTrue(dir.fileExists(IndexFileNames.segmentFileName(seg, "", IndexFileNames.VECTORS_INDEX_EXTENSION)));

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermdocPerf.java Mon Aug 23 17:00:43 2010
@@ -28,7 +28,6 @@ import org.apache.lucene.document.Docume
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util.BytesRef;
 

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestThreadedOptimize.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestThreadedOptimize.java?rev=988206&r1=988205&r2=988206&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestThreadedOptimize.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestThreadedOptimize.java Mon Aug 23 17:00:43 2010
@@ -22,7 +22,6 @@ import org.apache.lucene.analysis.Analyz
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
@@ -31,7 +30,6 @@ import org.apache.lucene.util.English;
 
 import org.apache.lucene.util.LuceneTestCase;
 
-import java.io.IOException;
 import java.io.File;
 import java.util.Random;