cutting     02/01/29 08:30:16

  Modified:    src/java/org/apache/lucene/index IndexWriter.java
  Log:
  Fixed to never delete added indexes.
  
  Revision  Changes    Path
  1.5       +4 -17     jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java
  
  Index: IndexWriter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- IndexWriter.java  28 Jan 2002 11:39:02 -0000      1.4
  +++ IndexWriter.java  29 Jan 2002 16:30:16 -0000      1.5
  @@ -225,19 +225,11 @@
     public final synchronized void addIndexes(Directory[] dirs)
         throws IOException {
       optimize();                                        // start with zero or 1 seg
  -    int minSegment = segmentInfos.size();
  -    int segmentsAddedSinceMerge = 0;
       for (int i = 0; i < dirs.length; i++) {
         SegmentInfos sis = new SegmentInfos();   // read infos from dir
         sis.read(dirs[i]);
         for (int j = 0; j < sis.size(); j++) {
        segmentInfos.addElement(sis.info(j));     // add each info
  -
  -     // merge whenever mergeFactor segments have been added
  -     if (++segmentsAddedSinceMerge == mergeFactor) {
  -       mergeSegments(minSegment++, false);
  -       segmentsAddedSinceMerge = 0;
  -     }
         }
       }
       optimize();                                        // final cleanup
  @@ -286,13 +278,7 @@
   
     /** Pops segments off of segmentInfos stack down to minSegment, merges them,
       and pushes the merged index onto the top of the segmentInfos stack. */
  -  private final void mergeSegments(int minSegment) throws IOException {
  -    mergeSegments(minSegment, true);
  -  }
  -
  -  /** Pops segments off of segmentInfos stack down to minSegment, merges them,
  -    and pushes the merged index onto the top of the segmentInfos stack. */
  -  private final void mergeSegments(int minSegment, boolean delete)
  +  private final void mergeSegments(int minSegment)
         throws IOException {
       String mergedName = newSegmentName();
       int mergedDocCount = 0;
  @@ -305,8 +291,9 @@
        infoStream.print(" " + si.name + " (" + si.docCount + " docs)");
         SegmentReader reader = new SegmentReader(si);
         merger.add(reader);
  -      if (delete)
  -     segmentsToDelete.addElement(reader);      // queue for deletion
  +      if ((reader.directory == this.directory) || // if we own the directory
  +          (reader.directory == this.ramDirectory))
  +     segmentsToDelete.addElement(reader);      // queue segment for deletion
         mergedDocCount += si.docCount;
       }
       if (infoStream != null) {
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to