You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2015/07/14 21:44:05 UTC

svn commit: r1691067 - in /lucene/dev/branches/branch_5x: ./ lucene/ lucene/queryparser/ lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/ lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/

Author: mikemccand
Date: Tue Jul 14 19:44:04 2015
New Revision: 1691067

URL: http://svn.apache.org/r1691067
Log:
LUCENE-6677: QueryParser should pass its maxDeterminizedStates when creating WildcardQuery

Modified:
    lucene/dev/branches/branch_5x/   (props changed)
    lucene/dev/branches/branch_5x/lucene/   (props changed)
    lucene/dev/branches/branch_5x/lucene/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_5x/lucene/queryparser/   (props changed)
    lucene/dev/branches/branch_5x/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java
    lucene/dev/branches/branch_5x/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java

Modified: lucene/dev/branches/branch_5x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/CHANGES.txt?rev=1691067&r1=1691066&r2=1691067&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/lucene/CHANGES.txt Tue Jul 14 19:44:04 2015
@@ -214,6 +214,9 @@ Bug fixes
 * LUCENE-6658: Fix IndexUpgrader to also upgrade indexes without any
   segments.  (Trejkaz, Uwe Schindler)
 
+* LUCENE-6677: QueryParserBase fails to enforce maxDeterminizedStates when
+  creating a WildcardQuery (David Causse via Mike McCandless)
+
 Changes in Runtime Behavior
 
 * LUCENE-6501: The subreader structure in ParallelCompositeReader

Modified: lucene/dev/branches/branch_5x/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java?rev=1691067&r1=1691066&r2=1691067&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java Tue Jul 14 19:44:04 2015
@@ -660,7 +660,7 @@ public abstract class QueryParserBase ex
    * @return new WildcardQuery instance
    */
   protected Query newWildcardQuery(Term t) {
-    WildcardQuery query = new WildcardQuery(t);
+    WildcardQuery query = new WildcardQuery(t, maxDeterminizedStates);
     query.setRewriteMethod(multiTermRewriteMethod);
     return query;
   }

Modified: lucene/dev/branches/branch_5x/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java?rev=1691067&r1=1691066&r2=1691067&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java (original)
+++ lucene/dev/branches/branch_5x/lucene/queryparser/src/test/org/apache/lucene/queryparser/classic/TestQueryParser.java Tue Jul 14 19:44:04 2015
@@ -17,8 +17,6 @@ package org.apache.lucene.queryparser.cl
  * limitations under the License.
  */
 
-import java.io.IOException;
-
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
@@ -37,6 +35,9 @@ import org.apache.lucene.search.BooleanQ
 import org.apache.lucene.search.MultiPhraseQuery;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.util.automaton.TooComplexToDeterminizeException;
+
+import java.io.IOException;
 
 /**
  * Tests QueryParser.
@@ -489,5 +490,16 @@ public class TestQueryParser extends Que
     expected.setSlop(3);
     assertEquals(expected, qp.parse("\"中国\"~3^2"));
   }
-  
+
+  /** LUCENE-6677: make sure wildcard query respects maxDeterminizedStates. */
+  public void testWildcardMaxDeterminizedStates() throws Exception {
+    QueryParser qp = new QueryParser("field", new MockAnalyzer(random()));
+    qp.setMaxDeterminizedStates(10);
+    try {
+      qp.parse("a*aaaaaaa");
+      fail("should have hit exception");
+    } catch (TooComplexToDeterminizeException tctde) {
+      // expected
+    }
+  }
 }