You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2010/05/27 17:36:33 UTC

svn commit: r948861 [2/2] - in /lucene/dev/trunk: lucene/ lucene/contrib/misc/src/java/org/apache/lucene/misc/ lucene/src/java/org/apache/lucene/index/ lucene/src/java/org/apache/lucene/index/codecs/preflex/ lucene/src/java/org/apache/lucene/index/code...

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/SimpleStandardTermsIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/SimpleStandardTermsIndexReader.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/SimpleStandardTermsIndexReader.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/SimpleStandardTermsIndexReader.java Thu May 27 15:36:32 2010
@@ -90,7 +90,7 @@ public class SimpleStandardTermsIndexRea
 
     this.termComp = termComp;
 
-    IndexInput in = dir.openInput(IndexFileNames.segmentFileName(segment, StandardCodec.TERMS_INDEX_EXTENSION));
+    IndexInput in = dir.openInput(IndexFileNames.segmentFileName(segment, "", StandardCodec.TERMS_INDEX_EXTENSION));
     
     boolean success = false;
 
@@ -421,7 +421,7 @@ public class SimpleStandardTermsIndexRea
   }
 
   public static void files(Directory dir, SegmentInfo info, Collection<String> files) {
-    files.add(IndexFileNames.segmentFileName(info.name, StandardCodec.TERMS_INDEX_EXTENSION));
+    files.add(IndexFileNames.segmentFileName(info.name, "", StandardCodec.TERMS_INDEX_EXTENSION));
   }
 
   public static void getIndexExtensions(Collection<String> extensions) {

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/SimpleStandardTermsIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/SimpleStandardTermsIndexWriter.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/SimpleStandardTermsIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/SimpleStandardTermsIndexWriter.java Thu May 27 15:36:32 2010
@@ -46,7 +46,7 @@ public class SimpleStandardTermsIndexWri
   private IndexOutput termsOut;
 
   public SimpleStandardTermsIndexWriter(SegmentWriteState state) throws IOException {
-    final String indexFileName = IndexFileNames.segmentFileName(state.segmentName, StandardCodec.TERMS_INDEX_EXTENSION);
+    final String indexFileName = IndexFileNames.segmentFileName(state.segmentName, "", StandardCodec.TERMS_INDEX_EXTENSION);
     state.flushedFiles.add(indexFileName);
     termIndexInterval = state.termIndexInterval;
     out = state.directory.createOutput(indexFileName);

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardPostingsReaderImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardPostingsReaderImpl.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardPostingsReaderImpl.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardPostingsReaderImpl.java Thu May 27 15:36:32 2010
@@ -44,12 +44,12 @@ public class StandardPostingsReaderImpl 
   int maxSkipLevels;
 
   public StandardPostingsReaderImpl(Directory dir, SegmentInfo segmentInfo, int readBufferSize) throws IOException {
-    freqIn = dir.openInput(IndexFileNames.segmentFileName(segmentInfo.name, StandardCodec.FREQ_EXTENSION),
+    freqIn = dir.openInput(IndexFileNames.segmentFileName(segmentInfo.name, "", StandardCodec.FREQ_EXTENSION),
                            readBufferSize);
     if (segmentInfo.getHasProx()) {
       boolean success = false;
       try {
-        proxIn = dir.openInput(IndexFileNames.segmentFileName(segmentInfo.name, StandardCodec.PROX_EXTENSION),
+        proxIn = dir.openInput(IndexFileNames.segmentFileName(segmentInfo.name, "", StandardCodec.PROX_EXTENSION),
                                readBufferSize);
         success = true;
       } finally {
@@ -63,9 +63,9 @@ public class StandardPostingsReaderImpl 
   }
 
   public static void files(Directory dir, SegmentInfo segmentInfo, Collection<String> files) throws IOException {
-    files.add(IndexFileNames.segmentFileName(segmentInfo.name, StandardCodec.FREQ_EXTENSION));
+    files.add(IndexFileNames.segmentFileName(segmentInfo.name, "", StandardCodec.FREQ_EXTENSION));
     if (segmentInfo.getHasProx()) {
-      files.add(IndexFileNames.segmentFileName(segmentInfo.name, StandardCodec.PROX_EXTENSION));
+      files.add(IndexFileNames.segmentFileName(segmentInfo.name, "", StandardCodec.PROX_EXTENSION));
     }
   }
 

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardPostingsWriterImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardPostingsWriterImpl.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardPostingsWriterImpl.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardPostingsWriterImpl.java Thu May 27 15:36:32 2010
@@ -59,14 +59,14 @@ public final class StandardPostingsWrite
 
   public StandardPostingsWriterImpl(SegmentWriteState state) throws IOException {
     super();
-    String fileName = IndexFileNames.segmentFileName(state.segmentName, StandardCodec.FREQ_EXTENSION);
+    String fileName = IndexFileNames.segmentFileName(state.segmentName, "", StandardCodec.FREQ_EXTENSION);
     state.flushedFiles.add(fileName);
     freqOut = state.directory.createOutput(fileName);
 
     if (state.fieldInfos.hasProx()) {
       // At least one field does not omit TF, so create the
       // prox file
-      fileName = IndexFileNames.segmentFileName(state.segmentName, StandardCodec.PROX_EXTENSION);
+      fileName = IndexFileNames.segmentFileName(state.segmentName, "", StandardCodec.PROX_EXTENSION);
       state.flushedFiles.add(fileName);
       proxOut = state.directory.createOutput(fileName);
     } else {

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictReader.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictReader.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictReader.java Thu May 27 15:36:32 2010
@@ -111,7 +111,7 @@ public class StandardTermsDictReader ext
 
     this.termComp = termComp;
     
-    in = dir.openInput(IndexFileNames.segmentFileName(segment, StandardCodec.TERMS_EXTENSION),
+    in = dir.openInput(IndexFileNames.segmentFileName(segment, "", StandardCodec.TERMS_EXTENSION),
                        readBufferSize);
 
     boolean success = false;
@@ -186,7 +186,7 @@ public class StandardTermsDictReader ext
   }
 
   public static void files(Directory dir, SegmentInfo segmentInfo, Collection<String> files) {
-    files.add(IndexFileNames.segmentFileName(segmentInfo.name, StandardCodec.TERMS_EXTENSION));
+    files.add(IndexFileNames.segmentFileName(segmentInfo.name, "", StandardCodec.TERMS_EXTENSION));
   }
 
   public static void getExtensions(Collection<String> extensions) {

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictWriter.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictWriter.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictWriter.java Thu May 27 15:36:32 2010
@@ -64,7 +64,7 @@ public class StandardTermsDictWriter ext
   private final Comparator<BytesRef> termComp;
 
   public StandardTermsDictWriter(StandardTermsIndexWriter indexWriter, SegmentWriteState state, StandardPostingsWriter postingsWriter, Comparator<BytesRef> termComp) throws IOException {
-    final String termsFileName = IndexFileNames.segmentFileName(state.segmentName, StandardCodec.TERMS_EXTENSION);
+    final String termsFileName = IndexFileNames.segmentFileName(state.segmentName, "", StandardCodec.TERMS_EXTENSION);
     this.indexWriter = indexWriter;
     this.termComp = termComp;
     out = state.directory.createOutput(termsFileName);

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/Directory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/Directory.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/Directory.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/Directory.java Thu May 27 15:36:32 2010
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.io.Closeable;
 import java.util.Collection; // for javadocs
 
-import java.util.Arrays;
 import org.apache.lucene.util.IOUtils;
 
 /** A Directory is a flat list of files.  Files may be written once, when they
@@ -198,77 +197,83 @@ public abstract class Directory implemen
       return this.toString();
   }
 
-
-  /**
-   * <p>Copy all files of this directory to destination directory. All conflicting files at destination are overwritten</p>
-   * <p><b>NOTE:</b> this method only copies files that look like index files (ie, have extensions matching the known
-   * extensions of index files).
-   * <p><b>NOTE:</b> the source directory should not change while this method is running.  Otherwise the results are
-   * undefined and you could easily hit a FileNotFoundException. </p>
-   *
-   * @param to        destination directory
-   */
-  public final void copyTo(Directory to) throws IOException {
-    copyTo(to, Arrays.asList(listAll()));
-  }
-
   /**
-   * <p>Copy given files of this directory to destination directory. All conflicting files at destination are overwritten</p>
-   * <p><b>NOTE:</b> the source directory should not change while this method is running.  Otherwise the results are
-   * undefined and you could easily hit a FileNotFoundException. </p>
-   * <p><b>NOTE:</b> implementations can check if destination directory is of the same type as 'this' and perform optimized copy</p>
-   *
-   * @param to        destination directory
-   * @param filenames file names to be copied
-   */
-  public void copyTo(Directory to, Collection<String> filenames) throws IOException {
-    byte[] buf = new byte[BufferedIndexOutput.BUFFER_SIZE];
-    for (String filename : filenames) {
-      IndexOutput os = null;
-      IndexInput is = null;
-      IOException priorException = null;
-      try {
-        // create file in dest directory
-        os = to.createOutput(filename);
-        // read current file
-        is = openInput(filename);
-        // and copy to dest directory
-        long len = is.length();
-        long readCount = 0;
-        while (readCount < len) {
-          int toRead = readCount + BufferedIndexOutput.BUFFER_SIZE > len ? (int) (len - readCount) : BufferedIndexOutput.BUFFER_SIZE;
-          is.readBytes(buf, 0, toRead);
-          os.writeBytes(buf, toRead);
-          readCount += toRead;
-        }
-      } catch (IOException ioe) {
-        priorException = ioe;
-      } finally {
-        IOUtils.closeSafely(priorException, os, is);
+   * Copies the file <i>src</i> to {@link Directory} <i>to</i> under the new
+   * file name <i>dest</i>.
+   * <p>
+   * If you want to copy the entire source directory to the destination one, you
+   * can do so like this:
+   * 
+   * <pre>
+   * Directory to; // the directory to copy to
+   * for (String file : dir.listAll()) {
+   *   dir.copy(to, file, newFile); // newFile can be either file, or a new name
+   * }
+   * </pre>
+   * <p>
+   * <b>NOTE:</b> this method does not check whether <i>dest<i> exist and will
+   * overwrite it if it does.
+   */
+  public void copy(Directory to, String src, String dest) throws IOException {
+    IndexOutput os = null;
+    IndexInput is = null;
+    IOException priorException = null;
+    int bufSize = BufferedIndexOutput.BUFFER_SIZE;
+    byte[] buf = new byte[bufSize];
+    try {
+      // create file in dest directory
+      os = to.createOutput(dest);
+      // read current file
+      is = openInput(src);
+      // and copy to dest directory
+      long len = is.length();
+      long numRead = 0;
+      while (numRead < len) {
+        long left = len - numRead;
+        int toRead = (int) (bufSize < left ? bufSize : left);
+        is.readBytes(buf, 0, toRead);
+        os.writeBytes(buf, toRead);
+        numRead += toRead;
       }
+    } catch (IOException ioe) {
+      priorException = ioe;
+    } finally {
+      IOUtils.closeSafely(priorException, os, is);
     }
   }
 
   /**
-   * Copy contents of a directory src to a directory dest. If a file in src already exists in dest then the one in dest
-   * will be blindly overwritten.
-   * <p/>
-   * <p><b>NOTE:</b> the source directory cannot change while this method is running.  Otherwise the results are
-   * undefined and you could easily hit a FileNotFoundException.
-   * <p/>
-   * <p><b>NOTE:</b> this method only copies files that look like index files (ie, have extensions matching the known
-   * extensions of index files).
-   *
-   * @param src         source directory
-   * @param dest        destination directory
-   * @param closeDirSrc if <code>true</code>, call {@link #close()} method on source directory
-   * @deprecated should be replaced with src.copyTo(dest); [src.close();]
+   * Copy contents of a directory src to a directory dest. If a file in src
+   * already exists in dest then the one in dest will be blindly overwritten.
+   * <p>
+   * <b>NOTE:</b> the source directory cannot change while this method is
+   * running. Otherwise the results are undefined and you could easily hit a
+   * FileNotFoundException.
+   * <p>
+   * <b>NOTE:</b> this method only copies files that look like index files (ie,
+   * have extensions matching the known extensions of index files).
+   * 
+   * @param src source directory
+   * @param dest destination directory
+   * @param closeDirSrc if <code>true</code>, call {@link #close()} method on 
+   *        source directory
+   * @deprecated should be replaced with calls to
+   *             {@link #copy(Directory, String, String)} for every file that
+   *             needs copying. You can use the following code:
+   * 
+   * <pre>
+   * for (String file : src.listAll()) {
+   *   src.copy(dest, file, file);
+   * }
+   * </pre>
    */
-  @Deprecated
   public static void copy(Directory src, Directory dest, boolean closeDirSrc) throws IOException {
-    src.copyTo(dest);
-    if (closeDirSrc)
+    for (String file : src.listAll()) {
+      src.copy(dest, file, file);
+    }
+    if (closeDirSrc) {
       src.close();
+    }
   }
 
   /**

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FSDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FSDirectory.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FSDirectory.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/FSDirectory.java Thu May 27 15:36:32 2010
@@ -431,29 +431,27 @@ public abstract class FSDirectory extend
   }
 
   @Override
-  public void copyTo(Directory to, Collection<String> filenames) throws IOException {
+  public void copy(Directory to, String src, String dest) throws IOException {
     if (to instanceof FSDirectory) {
       FSDirectory target = (FSDirectory) to;
-
-      for (String filename : filenames) {
-        target.ensureCanWrite(filename);
-        FileChannel input = null;
-        FileChannel output = null;
-        IOException priorException = null;
-        try {
-          input = new FileInputStream(new File(directory, filename)).getChannel();
-          output = new FileOutputStream(new File(target.directory, filename)).getChannel();
-          output.transferFrom(input, 0, input.size());
-        } catch (IOException ioe) {
-          priorException = ioe;
-        } finally {
-          IOUtils.closeSafely(priorException, input, output);
-        }
+      target.ensureCanWrite(dest);
+      FileChannel input = null;
+      FileChannel output = null;
+      IOException priorException = null;
+      try {
+        input = new FileInputStream(new File(directory, src)).getChannel();
+        output = new FileOutputStream(new File(target.directory, dest)).getChannel();
+        output.transferFrom(input, 0, input.size());
+      } catch (IOException ioe) {
+        priorException = ioe;
+      } finally {
+        IOUtils.closeSafely(priorException, input, output);
       }
-    } else
-      super.copyTo(to, filenames);
+    } else {
+      super.copy(to, src, dest);
+    }
   }
-
+  
   protected static class FSIndexOutput extends BufferedIndexOutput {
     private final FSDirectory parent;
     private final String name;

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/RAMDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/RAMDirectory.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/RAMDirectory.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/store/RAMDirectory.java Thu May 27 15:36:32 2010
@@ -23,6 +23,7 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
+
 import org.apache.lucene.util.ThreadInterruptedException;
 
 /**
@@ -68,7 +69,12 @@ public class RAMDirectory extends Direct
   
   private RAMDirectory(Directory dir, boolean closeDir) throws IOException {
     this();
-    Directory.copy(dir, this, closeDir);
+    for (String file : dir.listAll()) {
+      dir.copy(this, file, file);
+    }
+    if (closeDir) {
+      dir.close();
+    }
   }
 
   @Override

Copied: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java (from r948393, lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexesNoOptimize.java)
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java?p2=lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java&p1=lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexesNoOptimize.java&r1=948393&r2=948861&rev=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexesNoOptimize.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestAddIndexes.java Thu May 27 15:36:32 2010
@@ -19,6 +19,7 @@ package org.apache.lucene.index;
 
 import java.io.IOException;
 
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
@@ -29,9 +30,10 @@ import org.apache.lucene.store.RAMDirect
 import org.apache.lucene.store.MockRAMDirectory;
 import org.apache.lucene.util._TestUtil;
 
+import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.PhraseQuery;
 
-public class TestAddIndexesNoOptimize extends LuceneTestCase {
+public class TestAddIndexes extends LuceneTestCase {
   public void testSimpleCase() throws IOException {
     // main directory
     Directory dir = new RAMDirectory();
@@ -67,7 +69,7 @@ public class TestAddIndexesNoOptimize ex
     // test doc count before segments are merged
     writer = newWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.APPEND));
     assertEquals(100, writer.maxDoc());
-    writer.addIndexesNoOptimize(new Directory[] { aux, aux2 });
+    writer.addIndexes(new Directory[] { aux, aux2 });
     assertEquals(190, writer.maxDoc());
     writer.close();
     _TestUtil.checkIndex(dir);
@@ -89,7 +91,7 @@ public class TestAddIndexesNoOptimize ex
     // test doc count before segments are merged/index is optimized
     writer = newWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.APPEND));
     assertEquals(190, writer.maxDoc());
-    writer.addIndexesNoOptimize(new Directory[] { aux3 });
+    writer.addIndexes(new Directory[] { aux3 });
     assertEquals(230, writer.maxDoc());
     writer.close();
 
@@ -120,7 +122,7 @@ public class TestAddIndexesNoOptimize ex
 
     writer = newWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.APPEND));
     assertEquals(230, writer.maxDoc());
-    writer.addIndexesNoOptimize(new Directory[] { aux4 });
+    writer.addIndexes(new Directory[] { aux4 });
     assertEquals(231, writer.maxDoc());
     writer.close();
 
@@ -138,7 +140,7 @@ public class TestAddIndexesNoOptimize ex
     setUpDirs(dir, aux);
     IndexWriter writer = newWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.APPEND));
 
-    writer.addIndexesNoOptimize(new Directory[] {aux});
+    writer.addIndexes(new Directory[] {aux});
 
     // Adds 10 docs, then replaces them with another 10
     // docs, so 10 pending deletes:
@@ -181,13 +183,12 @@ public class TestAddIndexesNoOptimize ex
     for (int i = 0; i < 20; i++) {
       Document doc = new Document();
       doc.add(new Field("id", "" + (i % 10), Field.Store.NO, Field.Index.NOT_ANALYZED));
-      doc.add(new Field("content", "bbb " + i, Field.Store.NO,
-                        Field.Index.ANALYZED));
+      doc.add(new Field("content", "bbb " + i, Field.Store.NO, Field.Index.ANALYZED));
       writer.updateDocument(new Term("id", "" + (i%10)), doc);
     }
-
-    writer.addIndexesNoOptimize(new Directory[] {aux});
-
+    
+    writer.addIndexes(new Directory[] {aux});
+    
     // Deletes one of the 10 added docs, leaving 9:
     PhraseQuery q = new PhraseQuery();
     q.add(new Term("content", "bbb"));
@@ -231,7 +232,7 @@ public class TestAddIndexesNoOptimize ex
     q.add(new Term("content", "14"));
     writer.deleteDocuments(q);
 
-    writer.addIndexesNoOptimize(new Directory[] {aux});
+    writer.addIndexes(new Directory[] {aux});
 
     writer.optimize();
     writer.commit();
@@ -275,7 +276,7 @@ public class TestAddIndexesNoOptimize ex
     writer = newWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()).setOpenMode(OpenMode.APPEND));
     try {
       // cannot add self
-      writer.addIndexesNoOptimize(new Directory[] { aux, dir });
+      writer.addIndexes(new Directory[] { aux, dir });
       assertTrue(false);
     }
     catch (IllegalArgumentException e) {
@@ -288,7 +289,7 @@ public class TestAddIndexesNoOptimize ex
   }
 
   // in all the remaining tests, make the doc count of the oldest segment
-  // in dir large so that it is never merged in addIndexesNoOptimize()
+  // in dir large so that it is never merged in addIndexes()
   // case 1: no tail segments
   public void testNoTailSegments() throws IOException {
     // main directory
@@ -304,9 +305,8 @@ public class TestAddIndexesNoOptimize ex
     ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(4);
     addDocs(writer, 10);
 
-    writer.addIndexesNoOptimize(new Directory[] { aux });
+    writer.addIndexes(new Directory[] { aux });
     assertEquals(1040, writer.maxDoc());
-    assertEquals(2, writer.getSegmentCount());
     assertEquals(1000, writer.getDocCount(0));
     writer.close();
 
@@ -327,9 +327,8 @@ public class TestAddIndexesNoOptimize ex
     ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(4);
     addDocs(writer, 2);
 
-    writer.addIndexesNoOptimize(new Directory[] { aux });
+    writer.addIndexes(new Directory[] { aux });
     assertEquals(1032, writer.maxDoc());
-    assertEquals(2, writer.getSegmentCount());
     assertEquals(1000, writer.getDocCount(0));
     writer.close();
 
@@ -351,7 +350,7 @@ public class TestAddIndexesNoOptimize ex
         .setOpenMode(OpenMode.APPEND).setMaxBufferedDocs(10));
     ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(4);
 
-    writer.addIndexesNoOptimize(new Directory[] { aux, new RAMDirectory(aux) });
+    writer.addIndexes(new Directory[] { aux, new RAMDirectory(aux) });
     assertEquals(1060, writer.maxDoc());
     assertEquals(1000, writer.getDocCount(0));
     writer.close();
@@ -381,13 +380,10 @@ public class TestAddIndexesNoOptimize ex
         .setOpenMode(OpenMode.APPEND).setMaxBufferedDocs(4));
     ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(4);
 
-    writer.addIndexesNoOptimize(new Directory[] { aux, new RAMDirectory(aux) });
-    assertEquals(1020, writer.maxDoc());
+    writer.addIndexes(new Directory[] { aux, new RAMDirectory(aux) });
+    assertEquals(1060, writer.maxDoc());
     assertEquals(1000, writer.getDocCount(0));
     writer.close();
-
-    // make sure the index is correct
-    verifyNumDocs(dir, 1020);
   }
 
   // case 5: tail segments, invariants not hold
@@ -404,7 +400,7 @@ public class TestAddIndexesNoOptimize ex
         TEST_VERSION_CURRENT, new MockAnalyzer())
         .setOpenMode(OpenMode.CREATE).setMaxBufferedDocs(100));
     ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(10);
-    writer.addIndexesNoOptimize(new Directory[] { aux });
+    writer.addIndexes(new Directory[] { aux });
     assertEquals(30, writer.maxDoc());
     assertEquals(3, writer.getSegmentCount());
     writer.close();
@@ -427,13 +423,10 @@ public class TestAddIndexesNoOptimize ex
         .setOpenMode(OpenMode.APPEND).setMaxBufferedDocs(6));
     ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(4);
 
-    writer.addIndexesNoOptimize(new Directory[] { aux, aux2 });
-    assertEquals(1025, writer.maxDoc());
+    writer.addIndexes(new Directory[] { aux, aux2 });
+    assertEquals(1060, writer.maxDoc());
     assertEquals(1000, writer.getDocCount(0));
     writer.close();
-
-    // make sure the index is correct
-    verifyNumDocs(dir, 1025);
   }
 
   private IndexWriter newWriter(Directory dir, IndexWriterConfig conf)
@@ -471,9 +464,9 @@ public class TestAddIndexesNoOptimize ex
   private void verifyTermDocs(Directory dir, Term term, int numDocs)
       throws IOException {
     IndexReader reader = IndexReader.open(dir, true);
-    TermDocs termDocs = reader.termDocs(term);
+    DocsEnum docsEnum = MultiFields.getTermDocsEnum(reader, null, term.field, new BytesRef(term.text));
     int count = 0;
-    while (termDocs.next())
+    while (docsEnum.nextDoc() != DocIdSetIterator.NO_MORE_DOCS)
       count++;
     assertEquals(numDocs, count);
     reader.close();
@@ -547,28 +540,10 @@ public class TestAddIndexesNoOptimize ex
     writer = new IndexWriter(dir2, new IndexWriterConfig(TEST_VERSION_CURRENT,
         new MockAnalyzer())
         .setMergeScheduler(new SerialMergeScheduler()).setMergePolicy(lmp));
-    writer.addIndexesNoOptimize(new Directory[] {dir});
+    writer.addIndexes(new Directory[] {dir});
     writer.close();
     dir.close();
     dir2.close();
   }
 
-  // LUCENE-1642: make sure CFS of destination indexwriter
-  // is respected when copying tail segments
-  public void testTargetCFS() throws IOException {
-    Directory dir = new RAMDirectory();
-    IndexWriter writer = newWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()));
-    ((LogMergePolicy) writer.getConfig().getMergePolicy()).setUseCompoundFile(false);
-    ((LogMergePolicy) writer.getConfig().getMergePolicy()).setUseCompoundDocStore(false);
-    addDocs(writer, 1);
-    writer.close();
-
-    Directory other = new RAMDirectory();
-    writer = newWriter(other, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()));
-    ((LogMergePolicy) writer.getConfig().getMergePolicy()).setUseCompoundFile(true);
-    ((LogMergePolicy) writer.getConfig().getMergePolicy()).setUseCompoundDocStore(true);
-    writer.addIndexesNoOptimize(new Directory[] {dir});
-    assertTrue(writer.newestSegment().getUseCompoundFile());
-    writer.close();
-  }
 }

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java Thu May 27 15:36:32 2010
@@ -41,6 +41,7 @@ import org.apache.lucene.document.FieldS
 import org.apache.lucene.document.FieldSelectorResult;
 import org.apache.lucene.index.IndexWriterConfig.OpenMode;
 import org.apache.lucene.document.NumericField;
+import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.FieldCache;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.ScoreDoc;
@@ -48,6 +49,7 @@ import org.apache.lucene.search.TermQuer
 import org.apache.lucene.search.NumericRangeQuery;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FSDirectory;
+import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.ReaderUtil;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
@@ -112,7 +114,7 @@ public class TestBackwardsCompatibility 
 
     zipFile.close();
   }
-
+/*
   public void testCreateCFS() throws IOException {
     String dirName = "testindex.cfs";
     createIndex(dirName, true);
@@ -125,6 +127,7 @@ public class TestBackwardsCompatibility 
     rmDir(dirName);
   }
 
+*/  
   final String[] oldNames = {"19.cfs",
                              "19.nocfs",
                              "20.cfs",
@@ -141,6 +144,8 @@ public class TestBackwardsCompatibility 
                              "29.nocfs",
                              "30.cfs",
                              "30.nocfs",
+                             "31.cfs",
+                             "31.nocfs",
   };
   
   private void assertCompressedFields29(Directory dir, boolean shouldStillBeCompressed) throws IOException {
@@ -246,6 +251,46 @@ public class TestBackwardsCompatibility 
     assertEquals("test for compressed field should have run 4 times", 4, hasTested29);
   }
 
+  public void testAddOldIndexes() throws IOException {
+    for (String name : oldNames) {
+      unzip(getDataFile("index." + name + ".zip"), name);
+      String fullPath = fullDir(name);
+      Directory dir = FSDirectory.open(new File(fullPath));
+
+      Directory targetDir = new RAMDirectory();
+      IndexWriter w = new IndexWriter(targetDir, new IndexWriterConfig(
+          TEST_VERSION_CURRENT, new MockAnalyzer()));
+      w.addIndexes(new Directory[] { dir });
+      w.close();
+
+      _TestUtil.checkIndex(targetDir);
+      
+      dir.close();
+      rmDir(name);
+    }
+  }
+
+  public void testAddOldIndexesReader() throws IOException {
+    for (String name : oldNames) {
+      unzip(getDataFile("index." + name + ".zip"), name);
+      String fullPath = fullDir(name);
+      Directory dir = FSDirectory.open(new File(fullPath));
+      IndexReader reader = IndexReader.open(dir);
+      
+      Directory targetDir = new RAMDirectory();
+      IndexWriter w = new IndexWriter(targetDir, new IndexWriterConfig(
+          TEST_VERSION_CURRENT, new MockAnalyzer()));
+      w.addIndexes(new IndexReader[] { reader });
+      w.close();
+      reader.close();
+      
+      _TestUtil.checkIndex(targetDir);
+      
+      dir.close();
+      rmDir(name);
+    }
+  }
+
   public void testSearchOldIndex() throws IOException {
     for(int i=0;i<oldNames.length;i++) {
       unzip(getDataFile("index." + oldNames[i] + ".zip"), oldNames[i]);
@@ -659,7 +704,7 @@ public class TestBackwardsCompatibility 
 
   private int countDocs(DocsEnum docs) throws IOException {
     int count = 0;
-    while((docs.nextDoc()) != DocsEnum.NO_MORE_DOCS) {
+    while((docs.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) {
       count ++;
     }
     return count;

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexReaderCloneNorms.java Thu May 27 15:36:32 2010
@@ -117,7 +117,7 @@ public class TestIndexReaderCloneNorms e
         TEST_VERSION_CURRENT, anlzr).setOpenMode(OpenMode.APPEND)
         .setMaxBufferedDocs(5));
     ((LogMergePolicy) iw.getConfig().getMergePolicy()).setMergeFactor(3);
-    iw.addIndexesNoOptimize(new Directory[] { dir1, dir2 });
+    iw.addIndexes(new Directory[] { dir1, dir2 });
     iw.optimize();
     iw.close();
 

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=948861&r1=948860&r2=948861&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 Thu May 27 15:36:32 2010
@@ -159,7 +159,7 @@ public class TestIndexWriter extends Luc
 
     /*
       Test: make sure when we run out of disk space or hit
-      random IOExceptions in any of the addIndexesNoOptimize(*) calls
+      random IOExceptions in any of the addIndexes(*) calls
       that 1) index is not corrupt (searcher can open/search
       it) and 2) transactional semantics are followed:
       either all or none of the incoming documents were in
@@ -172,7 +172,7 @@ public class TestIndexWriter extends Luc
       int END_COUNT = START_COUNT + NUM_DIR*25;
 
       // Build up a bunch of dirs that have indexes which we
-      // will then merge together by calling addIndexesNoOptimize(*):
+      // will then merge together by calling addIndexes(*):
       Directory[] dirs = new Directory[NUM_DIR];
       long inputDiskUsage = 0;
       for(int i=0;i<NUM_DIR;i++) {
@@ -210,12 +210,12 @@ public class TestIndexWriter extends Luc
 
       // Iterate with larger and larger amounts of free
       // disk space.  With little free disk space,
-      // addIndexesNoOptimize will certainly run out of space &
+      // addIndexes will certainly run out of space &
       // fail.  Verify that when this happens, index is
       // not corrupt and index in fact has added no
       // documents.  Then, we increase disk space by 2000
       // bytes each iteration.  At some point there is
-      // enough free disk space and addIndexesNoOptimize should
+      // enough free disk space and addIndexes should
       // succeed and index should show all documents were
       // added.
 
@@ -247,7 +247,7 @@ public class TestIndexWriter extends Luc
         } else if (1 == method) {
           methodName = "addIndexes(IndexReader[])";
         } else {
-          methodName = "addIndexesNoOptimize(Directory[])";
+          methodName = "addIndexes(Directory[])";
         }
 
         while(!done) {
@@ -307,7 +307,7 @@ public class TestIndexWriter extends Luc
             try {
 
               if (0 == method) {
-                writer.addIndexesNoOptimize(dirs);
+                writer.addIndexes(dirs);
                 writer.optimize();
               } else if (1 == method) {
                 IndexReader readers[] = new IndexReader[dirs.length];
@@ -322,7 +322,7 @@ public class TestIndexWriter extends Luc
                   }
                 }
               } else {
-                writer.addIndexesNoOptimize(dirs);
+                writer.addIndexes(dirs);
               }
 
               success = true;
@@ -2732,7 +2732,7 @@ public class TestIndexWriter extends Luc
               new LogDocMergePolicy()));
 
       Directory[] indexDirs = {new MockRAMDirectory(dir)};
-      writer.addIndexesNoOptimize(indexDirs);
+      writer.addIndexes(indexDirs);
       writer.optimize();
       writer.close();
     }
@@ -3595,7 +3595,6 @@ public class TestIndexWriter extends Luc
     final int NUM_COPY;
     final static int NUM_THREADS = 5;
     final Thread[] threads = new Thread[NUM_THREADS];
-    final ConcurrentMergeScheduler cms;
 
     public RunAddIndexesThreads(int numCopy) throws Throwable {
       NUM_COPY = numCopy;
@@ -3610,7 +3609,6 @@ public class TestIndexWriter extends Luc
       dir2 = new MockRAMDirectory();
       writer2 = new IndexWriter(dir2, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()));
       writer2.commit();
-      cms = (ConcurrentMergeScheduler) writer2.getConfig().getMergeScheduler();
 
       readers = new IndexReader[NUM_COPY];
       for(int i=0;i<NUM_COPY;i++)
@@ -3683,18 +3681,22 @@ public class TestIndexWriter extends Luc
 
     @Override
     void doBody(int j, Directory[] dirs) throws Throwable {
-      switch(j%4) {
+      switch(j%5) {
       case 0:
-        writer2.addIndexesNoOptimize(dirs);
+        writer2.addIndexes(dirs);
         writer2.optimize();
         break;
       case 1:
-        writer2.addIndexesNoOptimize(dirs);
+        writer2.addIndexes(dirs);
         break;
       case 2:
         writer2.addIndexes(readers);
         break;
       case 3:
+        writer2.addIndexes(dirs);
+        writer2.maybeMerge();
+        break;
+      case 4:
         writer2.commit();
       }
     }
@@ -3704,7 +3706,7 @@ public class TestIndexWriter extends Luc
   // from multiple threads
   public void testAddIndexesWithThreads() throws Throwable {
 
-    final int NUM_ITER = 12;
+    final int NUM_ITER = 15;
     final int NUM_COPY = 3;
     CommitAndAddIndexes c = new CommitAndAddIndexes(NUM_COPY);
     c.launchThreads(NUM_ITER);
@@ -3714,7 +3716,8 @@ public class TestIndexWriter extends Luc
 
     c.joinThreads();
 
-    assertEquals(100+NUM_COPY*(3*NUM_ITER/4)*RunAddIndexesThreads.NUM_THREADS*RunAddIndexesThreads.NUM_INIT_DOCS, c.writer2.numDocs());
+    int expectedNumDocs = 100+NUM_COPY*(4*NUM_ITER/5)*RunAddIndexesThreads.NUM_THREADS*RunAddIndexesThreads.NUM_INIT_DOCS;
+    assertEquals(expectedNumDocs, c.writer2.numDocs());
 
     c.close(true);
 
@@ -3723,7 +3726,7 @@ public class TestIndexWriter extends Luc
     _TestUtil.checkIndex(c.dir2);
 
     IndexReader reader = IndexReader.open(c.dir2, true);
-    assertEquals(100+NUM_COPY*(3*NUM_ITER/4)*RunAddIndexesThreads.NUM_THREADS*RunAddIndexesThreads.NUM_INIT_DOCS, reader.numDocs());
+    assertEquals(expectedNumDocs, reader.numDocs());
     reader.close();
 
     c.closeDir();
@@ -3774,11 +3777,11 @@ public class TestIndexWriter extends Luc
     void doBody(int j, Directory[] dirs) throws Throwable {
       switch(j%5) {
       case 0:
-        writer2.addIndexesNoOptimize(dirs);
+        writer2.addIndexes(dirs);
         writer2.optimize();
         break;
       case 1:
-        writer2.addIndexesNoOptimize(dirs);
+        writer2.addIndexes(dirs);
         break;
       case 2:
         writer2.addIndexes(readers);

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=948861&r1=948860&r2=948861&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 Thu May 27 15:36:32 2010
@@ -30,11 +30,10 @@ public class TestIndexWriterMerging exte
 {
 
   /**
-   * Tests that index merging (specifically addIndexesNoOptimize()) doesn't
+   * Tests that index merging (specifically addIndexes(Directory...)) doesn't
    * change the index order of documents.
    */
-  public void testLucene() throws IOException
-  {
+  public void testLucene() throws IOException {
 
     int num=100;
 
@@ -60,7 +59,7 @@ public class TestIndexWriterMerging exte
     IndexWriter writer = new IndexWriter(merged, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()));
     ((LogMergePolicy) writer.getConfig().getMergePolicy()).setMergeFactor(2);
 
-    writer.addIndexesNoOptimize(new Directory[]{indexA, indexB});
+    writer.addIndexes(new Directory[]{indexA, indexB});
     writer.optimize();
     writer.close();
 

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=948861&r1=948860&r2=948861&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 Thu May 27 15:36:32 2010
@@ -151,7 +151,7 @@ public class TestIndexWriterReader exten
 
     IndexReader r0 = writer.getReader();
     assertTrue(r0.isCurrent());
-    writer.addIndexesNoOptimize(new Directory[] { dir2 });
+    writer.addIndexes(new Directory[] { dir2 });
     assertFalse(r0.isCurrent());
     r0.close();
 
@@ -191,11 +191,11 @@ public class TestIndexWriterReader exten
     createIndexNoClose(!optimize, "index2", writer2);
     writer2.close();
 
-    writer.addIndexesNoOptimize(new Directory[] { dir2 });
-    writer.addIndexesNoOptimize(new Directory[] { dir2 });
-    writer.addIndexesNoOptimize(new Directory[] { dir2 });
-    writer.addIndexesNoOptimize(new Directory[] { dir2 });
-    writer.addIndexesNoOptimize(new Directory[] { dir2 });
+    writer.addIndexes(new Directory[] { dir2 });
+    writer.addIndexes(new Directory[] { dir2 });
+    writer.addIndexes(new Directory[] { dir2 });
+    writer.addIndexes(new Directory[] { dir2 });
+    writer.addIndexes(new Directory[] { dir2 });
 
     IndexReader r1 = writer.getReader();
     assertEquals(500, r1.maxDoc());
@@ -303,7 +303,7 @@ public class TestIndexWriterReader exten
     IndexReader[] readers;
     boolean didClose = false;
     HeavyAtomicInt count = new HeavyAtomicInt(0);
-    HeavyAtomicInt numAddIndexesNoOptimize = new HeavyAtomicInt(0);
+    HeavyAtomicInt numaddIndexes = new HeavyAtomicInt(0);
     
     public AddDirectoriesThreads(int numDirs, IndexWriter mainWriter) throws Throwable {
       this.numDirs = numDirs;
@@ -363,7 +363,7 @@ public class TestIndexWriterReader exten
                 // System.out.println(Thread.currentThread().getName() + ": iter
                 // j=" + j);
                 for (int x=0; x < numIter; x++) {
-                  // only do addIndexesNoOptimize
+                  // only do addIndexes
                   doBody(x, dirs);
                 }
                 //if (numIter > 0 && j == numIter)
@@ -384,12 +384,12 @@ public class TestIndexWriterReader exten
     void doBody(int j, Directory[] dirs) throws Throwable {
       switch (j % 4) {
         case 0:
-          mainWriter.addIndexesNoOptimize(dirs);
+          mainWriter.addIndexes(dirs);
           mainWriter.optimize();
           break;
         case 1:
-          mainWriter.addIndexesNoOptimize(dirs);
-          numAddIndexesNoOptimize.incrementAndGet();
+          mainWriter.addIndexes(dirs);
+          numaddIndexes.incrementAndGet();
           break;
         case 2:
           mainWriter.addIndexes(readers);
@@ -650,7 +650,7 @@ public class TestIndexWriterReader exten
           public void run() {
             do {
               try {
-                writer.addIndexesNoOptimize(dirs);
+                writer.addIndexes(dirs);
               } catch (Throwable t) {
                 excs.add(t);
                 throw new RuntimeException(t);

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=948861&r1=948860&r2=948861&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 Thu May 27 15:36:32 2010
@@ -35,7 +35,7 @@ import org.apache.lucene.util.LuceneTest
 
 /**
  * Test that norms info is preserved during index life - including
- * separate norms, addDocument, addIndexesNoOptimize, optimize.
+ * separate norms, addDocument, addIndexes, optimize.
  */
 public class TestNorms extends LuceneTestCase {
 
@@ -104,7 +104,7 @@ public class TestNorms extends LuceneTes
         TEST_VERSION_CURRENT, anlzr).setOpenMode(OpenMode.APPEND)
         .setMaxBufferedDocs(5));
     ((LogMergePolicy) iw.getConfig().getMergePolicy()).setMergeFactor(3);
-    iw.addIndexesNoOptimize(new Directory[]{dir1,dir2});
+    iw.addIndexes(new Directory[]{dir1,dir2});
     iw.optimize();
     iw.close();
     

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=948861&r1=948860&r2=948861&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 Thu May 27 15:36:32 2010
@@ -172,7 +172,7 @@ public class TestPayloadProcessorProvide
     }
   }
 
-  private void doTest(boolean addIndexesNoOptimize, boolean addToEmptyIndex,
+  private void doTest(boolean addToEmptyIndex,
       int numExpectedPayloads, boolean multipleCommits) throws IOException {
     Directory[] dirs = new Directory[2];
     populateDirs(dirs, multipleCommits);
@@ -193,20 +193,16 @@ public class TestPayloadProcessorProvide
     IndexWriter writer = new IndexWriter(dir, getConfig());
     writer.setPayloadProcessorProvider(new PerDirPayloadProcessor(processors));
 
-    if (!addIndexesNoOptimize) {
-      IndexReader[] readers = new IndexReader[dirs.length];
-      for (int i = 0; i < readers.length; i++) {
-        readers[i] = IndexReader.open(dirs[i]);
-      }
-      try {
-        writer.addIndexes(readers);
-      } finally {
-        for (IndexReader r : readers) {
-          r.close();
-        }
+    IndexReader[] readers = new IndexReader[dirs.length];
+    for (int i = 0; i < readers.length; i++) {
+      readers[i] = IndexReader.open(dirs[i]);
+    }
+    try {
+      writer.addIndexes(readers);
+    } finally {
+      for (IndexReader r : readers) {
+        r.close();
       }
-    } else {
-      writer.addIndexesNoOptimize(dirs);
     }
     writer.close();
     verifyPayloadExists(dir, "p", new BytesRef("p1"), numExpectedPayloads);
@@ -219,31 +215,19 @@ public class TestPayloadProcessorProvide
   @Test
   public void testAddIndexes() throws Exception {
     // addIndexes - single commit in each
-    doTest(false, true, 0, false);
+    doTest(true, 0, false);
 
     // addIndexes - multiple commits in each
-    doTest(false, true, 0, true);
-
-    // addIndexesNoOptimize - single commit in each
-    doTest(true, true, 0, false);
-
-    // addIndexesNoOptimize - multiple commits in each
-    doTest(true, true, 0, true);
+    doTest(true, 0, true);
   }
 
   @Test
   public void testAddIndexesIntoExisting() throws Exception {
     // addIndexes - single commit in each
-    doTest(false, false, NUM_DOCS, false);
+    doTest(false, NUM_DOCS, false);
 
     // addIndexes - multiple commits in each
-    doTest(false, false, NUM_DOCS, true);
-
-    // addIndexesNoOptimize - single commit in each
-    doTest(true, false, NUM_DOCS, false);
-
-    // addIndexesNoOptimize - multiple commits in each
-    doTest(true, false, NUM_DOCS, true);
+    doTest(false, NUM_DOCS, true);
   }
 
   @Test

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=948861&r1=948860&r2=948861&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 Thu May 27 15:36:32 2010
@@ -117,7 +117,7 @@ public class TestTermVectorsReader exten
     seg = writer.newestSegment().name;
     writer.close();
 
-    fieldInfos = new FieldInfos(dir, IndexFileNames.segmentFileName(seg, IndexFileNames.FIELD_INFOS_EXTENSION));
+    fieldInfos = new FieldInfos(dir, IndexFileNames.segmentFileName(seg, "", IndexFileNames.FIELD_INFOS_EXTENSION));
   }
 
   private class MyTokenStream extends TokenStream {
@@ -161,8 +161,8 @@ public class TestTermVectorsReader exten
 
   public void test() {
     //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)));
+    assertTrue(dir.fileExists(IndexFileNames.segmentFileName(seg, "", IndexFileNames.VECTORS_DOCUMENTS_EXTENSION)));
+    assertTrue(dir.fileExists(IndexFileNames.segmentFileName(seg, "", IndexFileNames.VECTORS_INDEX_EXTENSION)));
   }
 
   public void testReader() throws IOException {

Added: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/index.31.cfs.zip
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/index.31.cfs.zip?rev=948861&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/index.31.cfs.zip
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/index.31.nocfs.zip
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/index.31.nocfs.zip?rev=948861&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/index.31.nocfs.zip
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestBoolean2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestBoolean2.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestBoolean2.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestBoolean2.java Thu May 27 15:36:32 2010
@@ -70,7 +70,7 @@ public class TestBoolean2 extends Lucene
     do {
       final Directory copy = new RAMDirectory(dir2);
       IndexWriter w = new IndexWriter(dir2, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer()));
-      w.addIndexesNoOptimize(new Directory[] {copy});
+      w.addIndexes(new Directory[] {copy});
       docCount = w.maxDoc();
       w.close();
       mulFactor *= 2;

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/core/RefCntRamDirectory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/core/RefCntRamDirectory.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/core/RefCntRamDirectory.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/core/RefCntRamDirectory.java Thu May 27 15:36:32 2010
@@ -3,6 +3,7 @@ package org.apache.solr.core;
 import java.io.IOException;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.lucene.index.IndexFileNameFilter;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.RAMDirectory;
 
@@ -17,7 +18,9 @@ public class RefCntRamDirectory extends 
 
   public RefCntRamDirectory(Directory dir) throws IOException {
     this();
-    dir.copyTo(this);
+    for (String file : dir.listAll()) {
+      dir.copy(this, file, file);
+    }
   }
 
   public void incRef() {

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/update/DirectUpdateHandler2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/update/DirectUpdateHandler2.java?rev=948861&r1=948860&r2=948861&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/update/DirectUpdateHandler2.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/update/DirectUpdateHandler2.java Thu May 27 15:36:32 2010
@@ -353,7 +353,7 @@ public class DirectUpdateHandler2 extend
       Directory[] dirs = cmd.dirs;
       if (dirs != null && dirs.length > 0) {
         openWriter();
-        writer.addIndexesNoOptimize(dirs);
+        writer.addIndexes(dirs);
         rc = 1;
       } else {
         rc = 0;