You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2013/03/14 18:33:42 UTC
svn commit: r1456567 - 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/test-framework/
lucene/test-framework/src/java/org/apache/lucene/index/
Author: jpountz
Date: Thu Mar 14 17:33:42 2013
New Revision: 1456567
URL: http://svn.apache.org/r1456567
Log:
LUCENE-4833: Make IndexWriterConfig setters throw an exception when passed null if null is not a valid value (merged from r1456564).
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/IndexWriterConfig.java
lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.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/DocHelper.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=1456567&r1=1456566&r2=1456567&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Thu Mar 14 17:33:42 2013
@@ -20,6 +20,11 @@ Changes in backwards compatibility polic
* LUCENE-4642: Remove Tokenizer's and subclasses' ctors taking
AttributeSource. (Renaud Delbru, Uwe Schindler, Steve Rowe)
+* LUCENE-4833: IndexWriterConfig used to use LogByteSizeMergePolicy when
+ calling setMergePolicy(null) although the default merge policy is
+ TieredMergePolicy. IndexWriterConfig setters now throw an exception when
+ passed null if null is not a valid value.
+
New Features
* LUCENE-4815: DrillSideways now allows more than one FacetRequest per
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=1456567&r1=1456566&r2=1456567&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 Mar 14 17:33:42 2013
@@ -23,7 +23,6 @@ import org.apache.lucene.analysis.Analyz
import org.apache.lucene.codecs.Codec;
import org.apache.lucene.index.DocumentsWriterPerThread.IndexingChain;
import org.apache.lucene.index.IndexWriter.IndexReaderWarmer;
-import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.InfoStream;
import org.apache.lucene.util.PrintStreamInfoStream;
@@ -167,6 +166,9 @@ public final class IndexWriterConfig ext
*
* <p>Only takes effect when IndexWriter is first created. */
public IndexWriterConfig setOpenMode(OpenMode openMode) {
+ if (openMode == null) {
+ throw new IllegalArgumentException("openMode must not be null");
+ }
this.openMode = openMode;
return this;
}
@@ -188,13 +190,15 @@ public final class IndexWriterConfig ext
* like NFS that do not support "delete on last close" semantics, which
* Lucene's "point in time" search normally relies on.
* <p>
- * <b>NOTE:</b> the deletion policy cannot be null. If <code>null</code> is
- * passed, the deletion policy will be set to the default.
+ * <b>NOTE:</b> the deletion policy cannot be null.
*
* <p>Only takes effect when IndexWriter is first created.
*/
public IndexWriterConfig setIndexDeletionPolicy(IndexDeletionPolicy delPolicy) {
- this.delPolicy = delPolicy == null ? new KeepOnlyLastCommitDeletionPolicy() : delPolicy;
+ if (delPolicy == null) {
+ throw new IllegalArgumentException("indexDeletionPolicy must not be null");
+ }
+ this.delPolicy = delPolicy;
return this;
}
@@ -221,12 +225,14 @@ public final class IndexWriterConfig ext
/**
* Expert: set the {@link Similarity} implementation used by this IndexWriter.
* <p>
- * <b>NOTE:</b> the similarity cannot be null. If <code>null</code> is passed,
- * the similarity will be set to the default implementation (unspecified).
+ * <b>NOTE:</b> the similarity cannot be null.
*
* <p>Only takes effect when IndexWriter is first created. */
public IndexWriterConfig setSimilarity(Similarity similarity) {
- this.similarity = similarity == null ? IndexSearcher.getDefaultSimilarity() : similarity;
+ if (similarity == null) {
+ throw new IllegalArgumentException("similarity must not be null");
+ }
+ this.similarity = similarity;
return this;
}
@@ -239,12 +245,14 @@ public final class IndexWriterConfig ext
* Expert: sets the merge scheduler used by this writer. The default is
* {@link ConcurrentMergeScheduler}.
* <p>
- * <b>NOTE:</b> the merge scheduler cannot be null. If <code>null</code> is
- * passed, the merge scheduler will be set to the default.
+ * <b>NOTE:</b> the merge scheduler cannot be null.
*
* <p>Only takes effect when IndexWriter is first created. */
public IndexWriterConfig setMergeScheduler(MergeScheduler mergeScheduler) {
- this.mergeScheduler = mergeScheduler == null ? new ConcurrentMergeScheduler() : mergeScheduler;
+ if (mergeScheduler == null) {
+ throw new IllegalArgumentException("mergeScheduler must not be null");
+ }
+ this.mergeScheduler = mergeScheduler;
return this;
}
@@ -273,12 +281,14 @@ 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. (The default is
- * {@link LogByteSizeMergePolicy}.
+ * It also selects merges to do for forceMerge.
*
* <p>Only takes effect when IndexWriter is first created. */
public IndexWriterConfig setMergePolicy(MergePolicy mergePolicy) {
- this.mergePolicy = mergePolicy == null ? new LogByteSizeMergePolicy() : mergePolicy;
+ if (mergePolicy == null) {
+ throw new IllegalArgumentException("mergePolicy must not be null");
+ }
+ this.mergePolicy = mergePolicy;
return this;
}
@@ -290,7 +300,7 @@ public final class IndexWriterConfig ext
*/
public IndexWriterConfig setCodec(Codec codec) {
if (codec == null) {
- throw new NullPointerException();
+ throw new IllegalArgumentException("codec must not be null");
}
this.codec = codec;
return this;
@@ -379,7 +389,10 @@ public final class IndexWriterConfig ext
*
* <p>Only takes effect when IndexWriter is first created. */
IndexWriterConfig setIndexingChain(IndexingChain indexingChain) {
- this.indexingChain = indexingChain == null ? DocumentsWriterPerThread.defaultIndexingChain : indexingChain;
+ if (indexingChain == null) {
+ throw new IllegalArgumentException("indexingChain must not be null");
+ }
+ this.indexingChain = indexingChain;
return this;
}
@@ -397,6 +410,9 @@ public final class IndexWriterConfig ext
* @see #setRAMBufferSizeMB(double)
*/
IndexWriterConfig setFlushPolicy(FlushPolicy flushPolicy) {
+ if (flushPolicy == null) {
+ throw new IllegalArgumentException("flushPolicy must not be null");
+ }
this.flushPolicy = flushPolicy;
return this;
}
@@ -485,7 +501,10 @@ public final class IndexWriterConfig ext
/** Convenience method that uses {@link PrintStreamInfoStream} */
public IndexWriterConfig setInfoStream(PrintStream printStream) {
- return setInfoStream(printStream == null ? InfoStream.NO_OUTPUT : new PrintStreamInfoStream(printStream));
+ if (printStream == null) {
+ throw new IllegalArgumentException("printStream must not be null");
+ }
+ return setInfoStream(new PrintStreamInfoStream(printStream));
}
@Override
Modified: lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java?rev=1456567&r1=1456566&r2=1456567&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterConfig.java Thu Mar 14 17:33:42 2013
@@ -231,30 +231,46 @@ public class TestIndexWriterConfig exten
assertEquals(KeepOnlyLastCommitDeletionPolicy.class, conf.getIndexDeletionPolicy().getClass());
conf.setIndexDeletionPolicy(new SnapshotDeletionPolicy(null));
assertEquals(SnapshotDeletionPolicy.class, conf.getIndexDeletionPolicy().getClass());
- conf.setIndexDeletionPolicy(null);
- assertEquals(KeepOnlyLastCommitDeletionPolicy.class, conf.getIndexDeletionPolicy().getClass());
+ try {
+ conf.setIndexDeletionPolicy(null);
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
// Test MergeScheduler
assertEquals(ConcurrentMergeScheduler.class, conf.getMergeScheduler().getClass());
conf.setMergeScheduler(new SerialMergeScheduler());
assertEquals(SerialMergeScheduler.class, conf.getMergeScheduler().getClass());
- conf.setMergeScheduler(null);
- assertEquals(ConcurrentMergeScheduler.class, conf.getMergeScheduler().getClass());
+ try {
+ conf.setMergeScheduler(null);
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
// Test Similarity:
// we shouldnt assert what the default is, just that its not null.
assertTrue(IndexSearcher.getDefaultSimilarity() == conf.getSimilarity());
conf.setSimilarity(new MySimilarity());
assertEquals(MySimilarity.class, conf.getSimilarity().getClass());
- conf.setSimilarity(null);
- assertTrue(IndexSearcher.getDefaultSimilarity() == conf.getSimilarity());
+ try {
+ conf.setSimilarity(null);
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
// Test IndexingChain
assertTrue(DocumentsWriterPerThread.defaultIndexingChain == conf.getIndexingChain());
conf.setIndexingChain(new MyIndexingChain());
assertEquals(MyIndexingChain.class, conf.getIndexingChain().getClass());
- conf.setIndexingChain(null);
- assertTrue(DocumentsWriterPerThread.defaultIndexingChain == conf.getIndexingChain());
+ try {
+ conf.setIndexingChain(null);
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
try {
conf.setMaxBufferedDeleteTerms(0);
@@ -324,8 +340,12 @@ public class TestIndexWriterConfig exten
assertEquals(TieredMergePolicy.class, conf.getMergePolicy().getClass());
conf.setMergePolicy(new LogDocMergePolicy());
assertEquals(LogDocMergePolicy.class, conf.getMergePolicy().getClass());
- conf.setMergePolicy(null);
- assertEquals(LogByteSizeMergePolicy.class, conf.getMergePolicy().getClass());
+ try {
+ conf.setMergePolicy(null);
+ fail();
+ } catch (IllegalArgumentException e) {
+ // ok
+ }
}
public void testLiveChangeToCFS() throws Exception {
Modified: lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java?rev=1456567&r1=1456566&r2=1456567&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java (original)
+++ lucene/dev/branches/branch_4x/lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java Thu Mar 14 17:33:42 2013
@@ -33,6 +33,7 @@ import org.apache.lucene.document.Stored
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.store.Directory;
@@ -270,7 +271,7 @@ class DocHelper {
*/
public static SegmentInfoPerCommit writeDoc(Random random, Directory dir, Analyzer analyzer, Similarity similarity, Document doc) throws IOException {
IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig( /* LuceneTestCase.newIndexWriterConfig(random, */
- TEST_VERSION_CURRENT, analyzer).setSimilarity(similarity));
+ TEST_VERSION_CURRENT, analyzer).setSimilarity(similarity == null ? IndexSearcher.getDefaultSimilarity() : similarity));
//writer.setUseCompoundFile(false);
writer.addDocument(doc);
writer.commit();