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 2011/11/07 15:34:40 UTC

svn commit: r1198752 - /lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentMerger.java

Author: rmuir
Date: Mon Nov  7 14:34:40 2011
New Revision: 1198752

URL: http://svn.apache.org/viewvc?rev=1198752&view=rev
Log:
LUCENE-2621: split this method up

Modified:
    lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentMerger.java

Modified: lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentMerger.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentMerger.java?rev=1198752&r1=1198751&r2=1198752&view=diff
==============================================================================
--- lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentMerger.java (original)
+++ lucene/dev/branches/lucene2621/lucene/src/java/org/apache/lucene/index/SegmentMerger.java Mon Nov  7 14:34:40 2011
@@ -127,7 +127,8 @@ final class SegmentMerger {
     // of this check impacts how long
     // IndexWriter.close(false) takes to actually stop the
     // threads.
-
+    mergeFieldInfos();
+    setMatchingSegmentReaders();
     final int mergedDocs = mergeFields();
     final SegmentWriteState segmentWriteState = new SegmentWriteState(infoStream, directory, segment, fieldInfos, mergedDocs, termIndexInterval, codec, null, context);
     mergeTerms(segmentWriteState);
@@ -225,13 +226,7 @@ final class SegmentMerger {
     }
   }
 
-  /**
-   *
-   * @return The number of documents in all of the readers
-   * @throws CorruptIndexException if the index is corrupt
-   * @throws IOException if there is a low-level IO error
-   */
-  private int mergeFields() throws CorruptIndexException, IOException {
+  private void mergeFieldInfos() throws IOException {
     for (MergeState.IndexReaderAndLiveDocs readerAndLiveDocs : readers) {
       final IndexReader reader = readerAndLiveDocs.reader;
       if (reader instanceof SegmentReader) {
@@ -253,10 +248,17 @@ final class SegmentMerger {
         fieldInfos.addOrUpdate(reader.getFieldNames(FieldOption.DOC_VALUES), false);
       }
     }
+  }
 
+  /**
+   *
+   * @return The number of documents in all of the readers
+   * @throws CorruptIndexException if the index is corrupt
+   * @throws IOException if there is a low-level IO error
+   */
+  private int mergeFields() throws CorruptIndexException, IOException {
     int docCount = 0;
 
-    setMatchingSegmentReaders();
     final FieldsWriter fieldsWriter = codec.fieldsFormat().fieldsWriter(directory, segment, context);
     try {
       int idx = 0;