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;