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 2014/03/17 20:02:18 UTC

svn commit: r1578517 - in /lucene/dev/branches/lucene_solr_4_7: ./ lucene/ lucene/analysis/ lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/ lucene/analysis/common/src/test/org/apache/lucene/analysis/synonym/

Author: rmuir
Date: Mon Mar 17 19:02:17 2014
New Revision: 1578517

URL: http://svn.apache.org/r1578517
Log:
LUCENE-5473: the contructor function of SynonymFilter can not report exception correctly

Modified:
    lucene/dev/branches/lucene_solr_4_7/   (props changed)
    lucene/dev/branches/lucene_solr_4_7/lucene/   (props changed)
    lucene/dev/branches/lucene_solr_4_7/lucene/CHANGES.txt
    lucene/dev/branches/lucene_solr_4_7/lucene/analysis/   (props changed)
    lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilter.java
    lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymMapFilter.java

Modified: lucene/dev/branches/lucene_solr_4_7/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_7/lucene/CHANGES.txt?rev=1578517&r1=1578516&r2=1578517&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_7/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/lucene_solr_4_7/lucene/CHANGES.txt Mon Mar 17 19:02:17 2014
@@ -17,6 +17,10 @@ Bug Fixes
   empty list of clauses. This can happen for example,  when a wildcard matches 
   no terms.  (Tim Allison via Robert Muir)
 
+* LUCENE-5473: Throw IllegalArgumentException, not
+  NullPointerException, if the synonym map is empty when creating
+  SynonymFilter (帅广应 via Mike McCandless)
+
 * LUCENE-5532: AutomatonQuery.hashCode was not thread-safe. (Robert Muir)
 
 Build

Modified: lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilter.java?rev=1578517&r1=1578516&r2=1578517&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilter.java (original)
+++ lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/java/org/apache/lucene/analysis/synonym/SynonymFilter.java Mon Mar 17 19:02:17 2014
@@ -263,10 +263,10 @@ public final class SynonymFilter extends
     this.synonyms = synonyms;
     this.ignoreCase = ignoreCase;
     this.fst = synonyms.fst;
-    this.fstReader = fst.getBytesReader();
     if (fst == null) {
       throw new IllegalArgumentException("fst must be non-null");
     }
+    this.fstReader = fst.getBytesReader();
 
     // Must be 1+ so that when roll buffer is at full
     // lookahead we can distinguish this full buffer from

Modified: lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymMapFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymMapFilter.java?rev=1578517&r1=1578516&r2=1578517&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymMapFilter.java (original)
+++ lucene/dev/branches/lucene_solr_4_7/lucene/analysis/common/src/test/org/apache/lucene/analysis/synonym/TestSynonymMapFilter.java Mon Mar 17 19:02:17 2014
@@ -929,4 +929,15 @@ public class TestSynonymMapFilter extend
         new int[] { 8, 22, 15, 22 },
         new int[] { 1, 0, 1, 1 });
   }
+
+  public void testEmpty() throws Exception {
+    Tokenizer tokenizer = new MockTokenizer(new StringReader("aa bb"));
+    try {
+      new SynonymFilter(tokenizer, new SynonymMap.Builder(true).build(), true);
+      fail("did not hit expected exception");
+    } catch (IllegalArgumentException iae) {
+      // expected
+      assertEquals("fst must be non-null", iae.getMessage());
+    }
+  }
 }