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 2014/08/14 13:41:02 UTC

svn commit: r1617911 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/core/ lucene/core/src/java/org/apache/lucene/index/ lucene/core/src/test/org/apache/lucene/index/ lucene/misc/ lucene/misc/src/java/org/apache/lucene/index/sorter/ lucene/test-...

Author: shaie
Date: Thu Aug 14 11:41:02 2014
New Revision: 1617911

URL: http://svn.apache.org/r1617911
Log:
LUCENE-5883: Move MergePolicy to LiveIndexWriterConfig

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_4x/lucene/core/   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriterConfig.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/NoMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestNoMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java
    lucene/dev/branches/branch_4x/lucene/misc/   (props changed)
    lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/test-framework/   (props changed)
    lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/test-framework/   (props changed)
    lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicy.java

Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Thu Aug 14 11:41:02 2014
@@ -71,6 +71,12 @@ API Changes
   to be just a reference to a section of a larger byte[] and BytesRefBuilder
   which is a StringBuilder-like class for BytesRef instances. (Adrien Grand)
 
+* LUCENE-5883: You can now change the MergePolicy instance on a live IndexWriter,
+  without first closing and reopening the writer. This allows to e.g. run a special
+  merge with UpgradeIndexMergePolicy without reopening the writer. Also, MergePolicy
+  no longer implements Closeable; if you need to release your custom MegePolicy's
+  resources, you need to implement close() and call it explicitly. (Shai Erera)
+  
 Optimizations
 
 * LUCENE-5780: Make OrdinalMap more memory-efficient, especially in case the

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Thu Aug 14 11:41:02 2014
@@ -281,7 +281,6 @@ public class IndexWriter implements Clos
   // merges
   private HashSet<SegmentCommitInfo> mergingSegments = new HashSet<>();
 
-  private MergePolicy mergePolicy;
   private final MergeScheduler mergeScheduler;
   private LinkedList<MergePolicy.OneMerge> pendingMerges = new LinkedList<>();
   private Set<MergePolicy.OneMerge> runningMerges = new HashSet<>();
@@ -445,7 +444,7 @@ public class IndexWriter implements Clos
         }
       }
       if (anySegmentFlushed) {
-        maybeMerge(MergeTrigger.FULL_FLUSH, UNBOUNDED_MAX_MERGE_SEGMENTS);
+        maybeMerge(config.getMergePolicy(), MergeTrigger.FULL_FLUSH, UNBOUNDED_MAX_MERGE_SEGMENTS);
       }
       if (infoStream.isEnabled("IW")) {
         infoStream.message("IW", "getReader took " + (System.currentTimeMillis() - tStart) + " msec");
@@ -744,7 +743,6 @@ public class IndexWriter implements Clos
     directory = d;
     analyzer = config.getAnalyzer();
     infoStream = config.getInfoStream();
-    mergePolicy = config.getMergePolicy();
     mergeScheduler = config.getMergeScheduler();
     codec = config.getCodec();
 
@@ -1079,7 +1077,7 @@ public class IndexWriter implements Clos
           
         } finally {
           // shutdown policy, scheduler and all threads (this call is not interruptible):
-          IOUtils.closeWhileHandlingException(mergePolicy, mergeScheduler);
+          IOUtils.closeWhileHandlingException(mergeScheduler);
         }
       }
 
@@ -1088,7 +1086,7 @@ public class IndexWriter implements Clos
       }
 
       if (doFlush) {
-        commitInternal();
+        commitInternal(config.getMergePolicy());
       }
       processEvents(false, true);
       synchronized(this) {
@@ -1845,7 +1843,7 @@ public class IndexWriter implements Clos
       }
     }
 
-    maybeMerge(MergeTrigger.EXPLICIT, maxNumSegments);
+    maybeMerge(config.getMergePolicy(), MergeTrigger.EXPLICIT, maxNumSegments);
 
     if (doWait) {
       synchronized(this) {
@@ -1926,6 +1924,7 @@ public class IndexWriter implements Clos
       infoStream.message("IW", "forceMergeDeletes: index now " + segString());
     }
 
+    final MergePolicy mergePolicy = config.getMergePolicy();
     MergePolicy.MergeSpecification spec;
     boolean newMergesFound = false;
     synchronized(this) {
@@ -2023,16 +2022,16 @@ public class IndexWriter implements Clos
    * href="#OOME">above</a> for details.</p>
    */
   public final void maybeMerge() throws IOException {
-    maybeMerge(MergeTrigger.EXPLICIT, UNBOUNDED_MAX_MERGE_SEGMENTS);
+    maybeMerge(config.getMergePolicy(), MergeTrigger.EXPLICIT, UNBOUNDED_MAX_MERGE_SEGMENTS);
   }
 
-  private final void maybeMerge(MergeTrigger trigger, int maxNumSegments) throws IOException {
+  private final void maybeMerge(MergePolicy mergePolicy, MergeTrigger trigger, int maxNumSegments) throws IOException {
     ensureOpen(false);
-    boolean newMergesFound = updatePendingMerges(trigger, maxNumSegments);
+    boolean newMergesFound = updatePendingMerges(mergePolicy, trigger, maxNumSegments);
     mergeScheduler.merge(this, trigger, newMergesFound);
   }
 
-  private synchronized boolean updatePendingMerges(MergeTrigger trigger, int maxNumSegments)
+  private synchronized boolean updatePendingMerges(MergePolicy mergePolicy, MergeTrigger trigger, int maxNumSegments)
     throws IOException {
 
     // In case infoStream was disabled on init, but then enabled at some
@@ -2156,10 +2155,8 @@ public class IndexWriter implements Clos
         infoStream.message("IW", "rollback: done finish merges");
       }
 
-      // Must pre-close these two, in case they increment
-      // changeCount so that we can then set it to false
-      // before calling closeInternal
-      mergePolicy.close();
+      // Must pre-close in case it increments changeCount so that we can then
+      // set it to false before calling closeInternal
       mergeScheduler.close();
 
       bufferedUpdatesStream.clear();
@@ -2211,9 +2208,9 @@ public class IndexWriter implements Clos
     } finally {
       if (!success) {
         // Must not hold IW's lock while closing
-        // mergePolicy/Scheduler: this can lead to deadlock,
+        // mergeScheduler: this can lead to deadlock,
         // e.g. TestIW.testThreadInterruptDeadlock
-        IOUtils.closeWhileHandlingException(mergePolicy, mergeScheduler);
+        IOUtils.closeWhileHandlingException(mergeScheduler);
       }
       synchronized(this) {
         if (!success) {
@@ -2755,6 +2752,7 @@ public class IndexWriter implements Clos
                                          
       setDiagnostics(info, SOURCE_ADDINDEXES_READERS);
 
+      final MergePolicy mergePolicy = config.getMergePolicy();
       boolean useCompoundFile;
       synchronized(this) { // Guard segmentInfos
         if (stopMerges) {
@@ -2971,10 +2969,10 @@ public class IndexWriter implements Clos
   @Override
   public final void prepareCommit() throws IOException {
     ensureOpen();
-    prepareCommitInternal();
+    prepareCommitInternal(config.getMergePolicy());
   }
 
-  private void prepareCommitInternal() throws IOException {
+  private void prepareCommitInternal(MergePolicy mergePolicy) throws IOException {
     startCommitTime = System.nanoTime();
     synchronized(commitLock) {
       ensureOpen(false);
@@ -3056,7 +3054,7 @@ public class IndexWriter implements Clos
       boolean success = false;
       try {
         if (anySegmentsFlushed) {
-          maybeMerge(MergeTrigger.FULL_FLUSH, UNBOUNDED_MAX_MERGE_SEGMENTS);
+          maybeMerge(mergePolicy, MergeTrigger.FULL_FLUSH, UNBOUNDED_MAX_MERGE_SEGMENTS);
         }
         startCommit(toCommit);
         success = true;
@@ -3132,7 +3130,7 @@ public class IndexWriter implements Clos
   @Override
   public final void commit() throws IOException {
     ensureOpen();
-    commitInternal();
+    commitInternal(config.getMergePolicy());
   }
 
   /** Returns true if there may be changes that have not been
@@ -3148,7 +3146,7 @@ public class IndexWriter implements Clos
     return changeCount != lastCommitChangeCount || docWriter.anyChanges() || bufferedUpdatesStream.any();
   }
 
-  private final void commitInternal() throws IOException {
+  private final void commitInternal(MergePolicy mergePolicy) throws IOException {
 
     if (infoStream.isEnabled("IW")) {
       infoStream.message("IW", "commit: start");
@@ -3165,7 +3163,7 @@ public class IndexWriter implements Clos
         if (infoStream.isEnabled("IW")) {
           infoStream.message("IW", "commit: now prepare");
         }
-        prepareCommitInternal();
+        prepareCommitInternal(mergePolicy);
       } else {
         if (infoStream.isEnabled("IW")) {
           infoStream.message("IW", "commit: already prepared");
@@ -3244,7 +3242,7 @@ public class IndexWriter implements Clos
     // We can be called during close, when closing==true, so we must pass false to ensureOpen:
     ensureOpen(false);
     if (doFlush(applyAllDeletes) && triggerMerge) {
-      maybeMerge(MergeTrigger.FULL_FLUSH, UNBOUNDED_MAX_MERGE_SEGMENTS);
+      maybeMerge(config.getMergePolicy(), MergeTrigger.FULL_FLUSH, UNBOUNDED_MAX_MERGE_SEGMENTS);
     }
   }
 
@@ -3797,6 +3795,7 @@ public class IndexWriter implements Clos
 
     final long t0 = System.currentTimeMillis();
 
+    final MergePolicy mergePolicy = config.getMergePolicy();
     try {
       try {
         try {
@@ -3809,7 +3808,7 @@ public class IndexWriter implements Clos
             infoStream.message("IW", "now merge\n  merge=" + segString(merge.segments) + "\n  index=" + segString());
           }
 
-          mergeMiddle(merge);
+          mergeMiddle(merge, mergePolicy);
           mergeSuccess(merge);
           success = true;
         } catch (Throwable t) {
@@ -3832,7 +3831,7 @@ public class IndexWriter implements Clos
           // segments) may now enable new merges, so we call
           // merge policy & update pending merges.
           if (success && !merge.isAborted() && (merge.maxNumSegments != -1 || (!closed && !closing))) {
-            updatePendingMerges(MergeTrigger.MERGE_FINISHED, merge.maxNumSegments);
+            updatePendingMerges(mergePolicy, MergeTrigger.MERGE_FINISHED, merge.maxNumSegments);
           }
         }
       }
@@ -4110,7 +4109,7 @@ public class IndexWriter implements Clos
   /** Does the actual (time-consuming) work of the merge,
    *  but without holding synchronized lock on IndexWriter
    *  instance */
-  private int mergeMiddle(MergePolicy.OneMerge merge) throws IOException {
+  private int mergeMiddle(MergePolicy.OneMerge merge, MergePolicy mergePolicy) throws IOException {
 
     merge.checkAborted(directory);
 
@@ -4798,12 +4797,13 @@ public class IndexWriter implements Clos
       flushCount.incrementAndGet();
     }
   }
+  
   final void doAfterSegmentFlushed(boolean triggerMerge, boolean forcePurge) throws IOException {
     try {
       purge(forcePurge);
     } finally {
       if (triggerMerge) {
-        maybeMerge(MergeTrigger.SEGMENT_FLUSH, UNBOUNDED_MAX_MERGE_SEGMENTS);
+        maybeMerge(config.getMergePolicy(), MergeTrigger.SEGMENT_FLUSH, UNBOUNDED_MAX_MERGE_SEGMENTS);
       }
     }
     

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriterConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriterConfig.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriterConfig.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriterConfig.java Thu Aug 14 11:41:02 2014
@@ -287,21 +287,6 @@ public final class IndexWriterConfig ext
   }
 
   /**
-   * Expert: {@link MergePolicy} is invoked whenever there are changes to the
-   * segments in the index. Its role is to select which merges to do, if any,
-   * and return a {@link MergePolicy.MergeSpecification} describing the merges.
-   * It also selects merges to do for forceMerge.
-   *
-   * <p>Only takes effect when IndexWriter is first created. */
-  public IndexWriterConfig setMergePolicy(MergePolicy mergePolicy) {
-    if (mergePolicy == null) {
-      throw new IllegalArgumentException("mergePolicy must not be null");
-    }
-    this.mergePolicy = mergePolicy;
-    return this;
-  }
-
-  /**
    * Set the {@link Codec}.
    * 
    * <p>
@@ -513,6 +498,11 @@ public final class IndexWriterConfig ext
   }
   
   @Override
+  public IndexWriterConfig setMergePolicy(MergePolicy mergePolicy) {
+    return (IndexWriterConfig) super.setMergePolicy(mergePolicy);
+  }
+  
+  @Override
   public IndexWriterConfig setMaxBufferedDeleteTerms(int maxBufferedDeleteTerms) {
     return (IndexWriterConfig) super.setMaxBufferedDeleteTerms(maxBufferedDeleteTerms);
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java Thu Aug 14 11:41:02 2014
@@ -351,6 +351,25 @@ public class LiveIndexWriterConfig {
   }
 
   /**
+   * Expert: {@link MergePolicy} is invoked whenever there are changes to the
+   * segments in the index. Its role is to select which merges to do, if any,
+   * and return a {@link MergePolicy.MergeSpecification} describing the merges.
+   * It also selects merges to do for forceMerge.
+   * 
+   * <p>
+   * Takes effect on subsequent merge selections. Any merges in flight or any
+   * merges already registered by the previous {@link MergePolicy} are not
+   * affected.
+   */
+  public LiveIndexWriterConfig setMergePolicy(MergePolicy mergePolicy) {
+    if (mergePolicy == null) {
+      throw new IllegalArgumentException("mergePolicy must not be null");
+    }
+    this.mergePolicy = mergePolicy;
+    return this;
+  }
+
+  /**
    * Set the merged segment warmer. See {@link IndexReaderWarmer}.
    * 
    * <p>

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java Thu Aug 14 11:41:02 2014
@@ -145,10 +145,6 @@ public abstract class LogMergePolicy ext
     return calibrateSizeByDeletes;
   }
 
-  @Override
-  public void close() {}
-
-
   /** Return the number of documents in the provided {@link
    *  SegmentCommitInfo}, pro-rated by percentage of
    *  non-deleted documents if {@link

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java Thu Aug 14 11:41:02 2014
@@ -55,7 +55,7 @@ import java.util.Map;
  *
  * @lucene.experimental
  */
-public abstract class MergePolicy implements java.io.Closeable {
+public abstract class MergePolicy {
 
   /** A map of doc IDs. */
   public static abstract class DocMap {
@@ -447,12 +447,6 @@ public abstract class MergePolicy implem
       SegmentInfos segmentInfos, IndexWriter writer) throws IOException;
 
   /**
-   * Release all resources for the policy.
-   */
-  @Override
-  public abstract void close();
-  
-  /**
    * Returns true if a new segment (regardless of its origin) should use the
    * compound file format. The default implementation returns <code>true</code>
    * iff the size of the given mergedInfo is less or equal to

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/NoMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/NoMergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/NoMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/NoMergePolicy.java Thu Aug 14 11:41:02 2014
@@ -35,9 +35,6 @@ public final class NoMergePolicy extends
   }
 
   @Override
-  public void close() {}
-
-  @Override
   public MergeSpecification findMerges(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, IndexWriter writer) { return null; }
 
   @Override

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java Thu Aug 14 11:41:02 2014
@@ -18,14 +18,14 @@ package org.apache.lucene.index;
  */
 
 import java.io.IOException;
-import java.util.Locale;
-import java.util.Map;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Comparator;
+import java.util.HashSet;
 import java.util.List;
-import java.util.ArrayList;
+import java.util.Locale;
+import java.util.Map;
 
 /**
  *  Merges segments of approximately equal size, subject to
@@ -616,10 +616,6 @@ public class TieredMergePolicy extends M
     return spec;
   }
 
-  @Override
-  public void close() {
-  }
-
   private long floorSize(long bytes) {
     return Math.max(floorSegmentBytes, bytes);
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java Thu Aug 14 11:41:02 2014
@@ -134,11 +134,6 @@ public class UpgradeIndexMergePolicy ext
   }
   
   @Override
-  public void close() {
-    base.close();
-  }
-  
-  @Override
   public String toString() {
     return "[" + getClass().getSimpleName() + "->" + base + "]";
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestNoMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestNoMergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestNoMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestNoMergePolicy.java Thu Aug 14 11:41:02 2014
@@ -33,7 +33,6 @@ public class TestNoMergePolicy extends L
     assertNull(mp.findMerges(null, (SegmentInfos)null, null));
     assertNull(mp.findForcedMerges(null, 0, null, null));
     assertNull(mp.findForcedDeletesMerges(null, null));
-    mp.close();
   }
 
   @Test

Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestPerSegmentDeletes.java Thu Aug 14 11:41:02 2014
@@ -254,9 +254,6 @@ public class TestPerSegmentDeletes exten
     }
 
     @Override
-    public void close() {}
-
-    @Override
     public MergeSpecification findMerges(MergeTrigger mergeTrigger, SegmentInfos segmentInfos, IndexWriter writer)
         throws IOException {
       MergeSpecification ms = new MergeSpecification();

Modified: lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingMergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/misc/src/java/org/apache/lucene/index/sorter/SortingMergePolicy.java Thu Aug 14 11:41:02 2014
@@ -30,8 +30,8 @@ import org.apache.lucene.index.MergePoli
 import org.apache.lucene.index.MergeState;
 import org.apache.lucene.index.MergeTrigger;
 import org.apache.lucene.index.MultiReader;
-import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentCommitInfo;
+import org.apache.lucene.index.SegmentInfo;
 import org.apache.lucene.index.SegmentInfos;
 import org.apache.lucene.index.SegmentReader;
 import org.apache.lucene.index.SlowCompositeReaderWrapper;
@@ -204,11 +204,6 @@ public final class SortingMergePolicy ex
   }
 
   @Override
-  public void close() {
-    in.close();
-  }
-
-  @Override
   public boolean useCompoundFile(SegmentInfos segments,
       SegmentCommitInfo newSegment, IndexWriter writer) throws IOException {
     return in.useCompoundFile(segments, newSegment, writer);

Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/MockRandomMergePolicy.java Thu Aug 14 11:41:02 2014
@@ -131,10 +131,6 @@ public class MockRandomMergePolicy exten
   }
 
   @Override
-  public void close() {
-  }
-
-  @Override
   public boolean useCompoundFile(SegmentInfos infos, SegmentCommitInfo mergedInfo, IndexWriter writer) throws IOException {
     // 80% of the time we create CFS:
     return random.nextInt(5) != 1;

Modified: lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicy.java?rev=1617911&r1=1617910&r2=1617911&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicy.java Thu Aug 14 11:41:02 2014
@@ -17,16 +17,18 @@
 
 package org.apache.solr.util;
 
-import org.apache.lucene.index.*;
-import org.apache.lucene.index.MergePolicy.MergeSpecification;
-import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+import java.util.Map;
 
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.MergePolicy;
+import org.apache.lucene.index.MergeTrigger;
+import org.apache.lucene.index.SegmentCommitInfo;
+import org.apache.lucene.index.SegmentInfos;
+import org.apache.lucene.util.LuceneTestCase;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Map;
-import java.io.IOException;
-
 /**
  * A {@link MergePolicy} with a no-arg constructor that proxies to a 
  * wrapped instance retrieved from {@link LuceneTestCase#newMergePolicy}.
@@ -56,11 +58,6 @@ public final class RandomMergePolicy ext
   }
 
   @Override
-  public void close() {
-    inner.close();
-  }
-
-  @Override
   public MergeSpecification findForcedDeletesMerges(SegmentInfos segmentInfos, IndexWriter writer) 
     throws IOException {