You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ko...@apache.org on 2009/01/01 07:50:51 UTC

svn commit: r730514 - in /lucene/solr/trunk: CHANGES.txt src/java/org/apache/solr/search/QueryParsing.java

Author: koji
Date: Wed Dec 31 22:50:50 2008
New Revision: 730514

URL: http://svn.apache.org/viewvc?rev=730514&view=rev
Log:
SOLR-947: QueryParsing.toString() should check firstly ConstantScoreRangeQuery then RangeQuery.

Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=730514&r1=730513&r2=730514&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Wed Dec 31 22:50:50 2008
@@ -210,6 +210,9 @@
 24. SOLR-902: FastInputStream#read(byte b[], int off, int len) gives incorrect results when amount left to read is less
     than buffer size (Noble Paul via shalin)
 
+25. SOLR-947: ConstantScoreRangeQuery should be checked before RangeQuery in QueryParsing.toString().
+    This causes NPE when requesting open ended range query with debugQuery=on (koji)
+
 
 Other Changes
 ----------------------

Modified: lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java?rev=730514&r1=730513&r2=730514&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/QueryParsing.java Wed Dec 31 22:50:50 2008
@@ -317,17 +317,17 @@
       Term t = q.getTerm();
       FieldType ft = writeFieldName(t.field(), schema, out, flags);
       writeFieldVal(t.text(), ft, out, flags);
-    } else if (query instanceof RangeQuery) {
-      RangeQuery q = (RangeQuery)query;
+    } else if (query instanceof ConstantScoreRangeQuery) {
+      ConstantScoreRangeQuery q = (ConstantScoreRangeQuery)query;
       String fname = q.getField();
       FieldType ft = writeFieldName(fname, schema, out, flags);
-      out.append( q.isInclusive() ? '[' : '{' );
-      Term lt = q.getLowerTerm();
-      Term ut = q.getUpperTerm();
+      out.append( q.includesLower() ? '[' : '{' );
+      String lt = q.getLowerVal();
+      String ut = q.getUpperVal();
       if (lt==null) {
         out.append('*');
       } else {
-        writeFieldVal(lt.text(), ft, out, flags);
+        writeFieldVal(lt, ft, out, flags);
       }
 
       out.append(" TO ");
@@ -335,22 +335,21 @@
       if (ut==null) {
         out.append('*');
       } else {
-        writeFieldVal(ut.text(), ft, out, flags);
+        writeFieldVal(ut, ft, out, flags);
       }
 
-      out.append( q.isInclusive() ? ']' : '}' );
-
-    } else if (query instanceof ConstantScoreRangeQuery) {
-      ConstantScoreRangeQuery q = (ConstantScoreRangeQuery)query;
+      out.append( q.includesUpper() ? ']' : '}' );
+    } else if (query instanceof RangeQuery) {
+      RangeQuery q = (RangeQuery)query;
       String fname = q.getField();
       FieldType ft = writeFieldName(fname, schema, out, flags);
-      out.append( q.includesLower() ? '[' : '{' );
-      String lt = q.getLowerVal();
-      String ut = q.getUpperVal();
+      out.append( q.isInclusive() ? '[' : '{' );
+      Term lt = q.getLowerTerm();
+      Term ut = q.getUpperTerm();
       if (lt==null) {
         out.append('*');
       } else {
-        writeFieldVal(lt, ft, out, flags);
+        writeFieldVal(lt.text(), ft, out, flags);
       }
 
       out.append(" TO ");
@@ -358,10 +357,11 @@
       if (ut==null) {
         out.append('*');
       } else {
-        writeFieldVal(ut, ft, out, flags);
+        writeFieldVal(ut.text(), ft, out, flags);
       }
 
-      out.append( q.includesUpper() ? ']' : '}' );
+      out.append( q.isInclusive() ? ']' : '}' );
+
     } else if (query instanceof BooleanQuery) {
       BooleanQuery q = (BooleanQuery)query;
       boolean needParens=false;