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 2015/02/26 21:50:14 UTC

svn commit: r1662564 - in /lucene/dev/trunk/lucene: CHANGES.txt queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java

Author: rmuir
Date: Thu Feb 26 20:50:13 2015
New Revision: 1662564

URL: http://svn.apache.org/r1662564
Log:
LUCENE-6298: SimpleQueryParser returns empty query rather than null for empty query

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java
    lucene/dev/trunk/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1662564&r1=1662563&r2=1662564&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Thu Feb 26 20:50:13 2015
@@ -186,6 +186,9 @@ Changes in Runtime Behavior
 * LUCENE-6255: PhraseQuery now ignores leading holes and requires that
   positions are positive and added in order. (Adrien Grand)
 
+* LUCENE-6298: SimpleQueryParser returns an empty query rather than
+  null, if e.g. the terms were all stopwords. (Lee Hinman via Robert Muir)
+
 ======================= Lucene 5.0.0 =======================
 
 New Features

Modified: lucene/dev/trunk/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java?rev=1662564&r1=1662563&r2=1662564&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java (original)
+++ lucene/dev/trunk/lucene/queryparser/src/java/org/apache/lucene/queryparser/simple/SimpleQueryParser.java Thu Feb 26 20:50:13 2015
@@ -141,14 +141,18 @@ public class SimpleQueryParser extends Q
     this.flags = flags;
   }
 
-  /** Parses the query text and returns parsed query (or null if empty) */
+  /** Parses the query text and returns parsed query */
   public Query parse(String queryText) {
     char data[] = queryText.toCharArray();
     char buffer[] = new char[data.length];
 
     State state = new State(data, buffer, 0, data.length);
     parseSubQuery(state);
-    return state.top;
+    if (state.top == null) {
+      return new BooleanQuery();
+    } else {
+      return state.top;
+    }
   }
 
   private void parseSubQuery(State state) {

Modified: lucene/dev/trunk/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java?rev=1662564&r1=1662563&r2=1662564&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java (original)
+++ lucene/dev/trunk/lucene/queryparser/src/test/org/apache/lucene/queryparser/simple/TestSimpleQueryParser.java Thu Feb 26 20:50:13 2015
@@ -273,17 +273,19 @@ public class TestSimpleQueryParser exten
   }
 
   public void testGarbageEmpty() throws Exception {
-    assertNull(parse(""));
-    assertNull(parse("  "));
-    assertNull(parse("  "));
-    assertNull(parse("\\ "));
-    assertNull(parse("\\ \\ "));
-    assertNull(parse("\"\""));
-    assertNull(parse("\" \""));
-    assertNull(parse("\" \"|\" \""));
-    assertNull(parse("(\" \"|\" \")"));
-    assertNull(parse("\" \" \" \""));
-    assertNull(parse("(\" \" \" \")"));
+    BooleanQuery expected = new BooleanQuery();
+
+    assertEquals(expected, parse(""));
+    assertEquals(expected, parse("  "));
+    assertEquals(expected, parse("  "));
+    assertEquals(expected, parse("\\ "));
+    assertEquals(expected, parse("\\ \\ "));
+    assertEquals(expected, parse("\"\""));
+    assertEquals(expected, parse("\" \""));
+    assertEquals(expected, parse("\" \"|\" \""));
+    assertEquals(expected, parse("(\" \"|\" \")"));
+    assertEquals(expected, parse("\" \" \" \""));
+    assertEquals(expected, parse("(\" \" \" \")"));
   }
 
   public void testGarbageAND() throws Exception {