You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2012/11/23 20:46:01 UTC

svn commit: r1413042 [4/4] - in /lucene/dev/trunk/solr: ./ core/ core/src/java/org/apache/solr/handler/ core/src/java/org/apache/solr/handler/component/ core/src/java/org/apache/solr/parser/ core/src/java/org/apache/solr/request/ core/src/java/org/apac...

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/function/distance/HaversineConstFunction.java Fri Nov 23 19:45:50 2012
@@ -24,7 +24,6 @@ import org.apache.lucene.queries.functio
 import org.apache.lucene.queries.function.valuesource.DoubleConstValueSource;
 import org.apache.lucene.queries.function.valuesource.MultiValueSource;
 import org.apache.lucene.queries.function.valuesource.VectorValueSource;
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.search.IndexSearcher;
 import com.spatial4j.core.io.ParseUtils;
 import com.spatial4j.core.distance.DistanceUtils;
@@ -32,6 +31,7 @@ import com.spatial4j.core.exception.Inva
 import org.apache.solr.common.params.SpatialParams;
 import org.apache.solr.schema.SchemaField;
 import org.apache.solr.search.FunctionQParser;
+import org.apache.solr.search.SyntaxError;
 import org.apache.solr.search.ValueSourceParser;
 
 import java.io.IOException;
@@ -48,7 +48,7 @@ public class HaversineConstFunction exte
 
   public static ValueSourceParser parser = new ValueSourceParser() {
     @Override
-    public ValueSource parse(FunctionQParser fp) throws ParseException
+    public ValueSource parse(FunctionQParser fp) throws SyntaxError
     {
       // TODO: dispatch through SpatialQueryable in the future?
       List<ValueSource> sources = fp.parseValueSourceList();
@@ -65,7 +65,7 @@ public class HaversineConstFunction exte
       } else if (sources.size() == 1) {
         ValueSource vs = sources.get(0);
         if (!(vs instanceof MultiValueSource)) {
-          throw new ParseException("geodist - invalid parameters:" + sources);
+          throw new SyntaxError("geodist - invalid parameters:" + sources);
         }
         mv1 = (MultiValueSource)vs;
       } else if (sources.size() == 2) {
@@ -88,7 +88,7 @@ public class HaversineConstFunction exte
           mv1 = makeMV(sources.subList(0,2), sources);
           vs1 = sources.get(2);
           if (!(vs1 instanceof MultiValueSource)) {
-            throw new ParseException("geodist - invalid parameters:" + sources);
+            throw new SyntaxError("geodist - invalid parameters:" + sources);
           }
           mv2 = (MultiValueSource)vs1;
         }
@@ -96,7 +96,7 @@ public class HaversineConstFunction exte
         mv1 = makeMV(sources.subList(0,2), sources);
         mv2 = makeMV(sources.subList(2,4), sources);
       } else if (sources.size() > 4) {
-        throw new ParseException("geodist - invalid parameters:" + sources);
+        throw new SyntaxError("geodist - invalid parameters:" + sources);
       }
 
       if (mv1 == null) {
@@ -109,7 +109,7 @@ public class HaversineConstFunction exte
       }
 
       if (mv1 == null || mv2 == null) {
-        throw new ParseException("geodist - not enough parameters:" + sources);
+        throw new SyntaxError("geodist - not enough parameters:" + sources);
       }
 
       // We have all the parameters at this point, now check if one of the points is constant
@@ -130,24 +130,24 @@ public class HaversineConstFunction exte
   };
 
   /** make a MultiValueSource from two non MultiValueSources */
-  private static VectorValueSource makeMV(List<ValueSource> sources, List<ValueSource> orig) throws ParseException {
+  private static VectorValueSource makeMV(List<ValueSource> sources, List<ValueSource> orig) throws SyntaxError {
     ValueSource vs1 = sources.get(0);
     ValueSource vs2 = sources.get(1);
 
     if (vs1 instanceof MultiValueSource || vs2 instanceof MultiValueSource) {
-      throw new ParseException("geodist - invalid parameters:" + orig);
+      throw new SyntaxError("geodist - invalid parameters:" + orig);
     }
     return  new VectorValueSource(sources);
   }
 
-  private static MultiValueSource parsePoint(FunctionQParser fp) throws ParseException {
+  private static MultiValueSource parsePoint(FunctionQParser fp) throws SyntaxError {
     String pt = fp.getParam(SpatialParams.POINT);
     if (pt == null) return null;
     double[] point = null;
     try {
       point = ParseUtils.parseLatitudeLongitude(pt);
     } catch (InvalidShapeException e) {
-      throw new ParseException("Bad spatial pt:" + pt);
+      throw new SyntaxError("Bad spatial pt:" + pt);
     }
     return new VectorValueSource(Arrays.<ValueSource>asList(new DoubleConstValueSource(point[0]),new DoubleConstValueSource(point[1])));
   }
@@ -161,13 +161,13 @@ public class HaversineConstFunction exte
     return null;
   }
 
-  private static MultiValueSource parseSfield(FunctionQParser fp) throws ParseException {
+  private static MultiValueSource parseSfield(FunctionQParser fp) throws SyntaxError {
     String sfield = fp.getParam(SpatialParams.FIELD);
     if (sfield == null) return null;
     SchemaField sf = fp.getReq().getSchema().getField(sfield);
     ValueSource vs = sf.getType().getValueSource(sf, fp);
     if (!(vs instanceof MultiValueSource)) {
-      throw new ParseException("Spatial field must implement MultiValueSource:" + sf);
+      throw new SyntaxError("Spatial field must implement MultiValueSource:" + sf);
     }
     return (MultiValueSource)vs;
   }

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/QueryCommand.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/QueryCommand.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/QueryCommand.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/grouping/distributed/command/QueryCommand.java Fri Nov 23 19:45:50 2012
@@ -17,12 +17,12 @@ package org.apache.solr.search.grouping.
  * limitations under the License.
  */
 
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.search.*;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.DocSet;
 import org.apache.solr.search.QParser;
 import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.search.SyntaxError;
 import org.apache.solr.search.grouping.Command;
 import org.apache.solr.search.grouping.collector.FilterCollector;
 
@@ -61,9 +61,8 @@ public class QueryCommand implements Com
      * @param groupQueryString The group query string to parse
      * @param request The current request
      * @return this
-     * @throws ParseException If parsing the groupQueryString failed
      */
-    public Builder setQuery(String groupQueryString, SolrQueryRequest request) throws ParseException {
+    public Builder setQuery(String groupQueryString, SolrQueryRequest request) throws SyntaxError {
       QParser parser = QParser.getParser(groupQueryString, null, request);
       this.queryString = groupQueryString;
       return setQuery(parser.getQuery());

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java Fri Nov 23 19:45:50 2012
@@ -37,7 +37,6 @@ import org.apache.lucene.index.IndexRead
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.queries.function.ValueSource;
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanQuery;
@@ -57,6 +56,7 @@ import org.apache.solr.response.SolrQuer
 import org.apache.solr.schema.SchemaField;
 import org.apache.solr.search.FunctionRangeQuery;
 import org.apache.solr.search.QParser;
+import org.apache.solr.search.SyntaxError;
 import org.apache.solr.search.QueryUtils;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.search.function.ValueSourceRangeFilter;
@@ -317,7 +317,7 @@ public class DirectUpdateHandler2 extend
 
       return q;
 
-    } catch (ParseException e) {
+    } catch (SyntaxError e) {
       throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, e);
     }
   }

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/util/SolrPluginUtils.java Fri Nov 23 19:45:50 2012
@@ -17,12 +17,8 @@
 
 package org.apache.solr.util;
 
-import org.apache.lucene.document.Document;
-import org.apache.lucene.index.IndexableField;
 import org.apache.lucene.index.StorableField;
 import org.apache.lucene.index.StoredDocument;
-import org.apache.lucene.queryparser.classic.ParseException;
-import org.apache.lucene.queryparser.classic.QueryParser;
 import org.apache.lucene.search.*;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.solr.common.SolrDocument;
@@ -30,7 +26,6 @@ import org.apache.solr.common.SolrDocume
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.SolrParams;
-import org.apache.solr.common.params.UpdateParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
 import org.apache.solr.common.util.StrUtils;
@@ -38,13 +33,12 @@ import org.apache.solr.core.SolrCore;
 import org.apache.solr.handler.component.HighlightComponent;
 import org.apache.solr.handler.component.ResponseBuilder;
 import org.apache.solr.highlight.SolrHighlighter;
+import org.apache.solr.parser.QueryParser;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.schema.SchemaField;
 import org.apache.solr.search.*;
-import org.apache.solr.update.DocumentBuilder;
-import org.slf4j.Logger;
 
 import java.io.IOException;
 import java.util.*;
@@ -386,7 +380,7 @@ public class SolrPluginUtils {
 
     DocList results = req.getSearcher().getDocList(query,(DocSet)null, sort, start, limit);
     return results;
-    } catch (ParseException e) {
+    } catch (SyntaxError e) {
       throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Error parsing query: " + qs);
     }
 
@@ -604,8 +598,6 @@ public class SolrPluginUtils {
 
   /**
    * Escapes all special characters except '"', '-', and '+'
-   *
-   * @see QueryParser#escape
    */
   public static CharSequence partialEscape(CharSequence s) {
     StringBuilder sb = new StringBuilder();
@@ -726,7 +718,7 @@ public class SolrPluginUtils {
      */
     @Override
     protected Query getFieldQuery(String field, String queryText, boolean quoted)
-      throws ParseException {
+      throws SyntaxError {
 
       if (aliases.containsKey(field)) {
 
@@ -798,7 +790,7 @@ public class SolrPluginUtils {
    * @return null if no queries are generated
    */
   public static List<Query> parseQueryStrings(SolrQueryRequest req,
-                                              String[] queries) throws ParseException {
+                                              String[] queries) throws SyntaxError {
     if (null == queries || 0 == queries.length) return null;
     List<Query> out = new ArrayList<Query>(queries.length);
     for (String q : queries) {

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/DummyValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/DummyValueSourceParser.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/DummyValueSourceParser.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/DummyValueSourceParser.java Fri Nov 23 19:45:50 2012
@@ -19,9 +19,9 @@ package org.apache.solr.core;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.valuesource.SimpleFloatFunction;
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.search.FunctionQParser;
+import org.apache.solr.search.SyntaxError;
 import org.apache.solr.search.ValueSourceParser;
 
 
@@ -38,7 +38,7 @@ public class DummyValueSourceParser exte
   }
 
   @Override
-  public ValueSource parse(FunctionQParser fp) throws ParseException {
+  public ValueSource parse(FunctionQParser fp) throws SyntaxError {
     ValueSource source = fp.parseValueSource();
     ValueSource result = new SimpleFloatFunction(source) {
       @Override

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java Fri Nov 23 19:45:50 2012
@@ -29,7 +29,6 @@ import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.util.Version;
 import org.apache.solr.common.SolrException;
@@ -86,7 +85,7 @@ public class TestArbitraryIndexDir exten
   }
 
   @Test
-  public void testLoadNewIndexDir() throws IOException, ParserConfigurationException, SAXException, ParseException {
+  public void testLoadNewIndexDir() throws IOException, ParserConfigurationException, SAXException {
     //add a doc in original index dir
     assertU(adoc("id", String.valueOf(1),
         "name", "name"+String.valueOf(1)));

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/FooQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/FooQParserPlugin.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/FooQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/FooQParserPlugin.java Fri Nov 23 19:45:50 2012
@@ -17,7 +17,6 @@
 
 package org.apache.solr.search;
 
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.request.SolrQueryRequest;
@@ -42,7 +41,7 @@ class FooQParser extends QParser {
   }
 
   @Override
-  public Query parse() throws ParseException {
+  public Query parse() throws SyntaxError {
     return new TermQuery(new Term(localParams.get(QueryParsing.F), localParams.get(QueryParsing.V)));
   }
 }

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestExtendedDismaxParser.java Fri Nov 23 19:45:50 2012
@@ -772,7 +772,7 @@ public class TestExtendedDismaxParser ex
             "defType", "edismax")
         , "*[count(//doc)=1]");
     
-    // Query string field 'cat_s' for special char / - causes ParseException without patch SOLR-3467
+    // Query string field 'cat_s' for special char / - causes SyntaxError without patch SOLR-3467
     assertQ("Escaping string with reserved / character",
         req("q", "foo/",
             "qf", "cat_s",

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestSolrQueryParser.java Fri Nov 23 19:45:50 2012
@@ -35,6 +35,12 @@ public class TestSolrQueryParser extends
     assertU(adoc("id","1", "text",v,  "text_np",v));
     v="now cow";
     assertU(adoc("id","2", "text",v,  "text_np",v));
+    assertU(adoc("id","3", "foo_s","a ' \" \\ {! ) } ( { z"));  // A value filled with special chars
+
+    assertU(adoc("id","10", "qqq_s","X"));
+    assertU(adoc("id","11", "www_s","X"));
+    assertU(adoc("id","12", "eee_s","X"));
+
     assertU(commit());
   }
 
@@ -49,4 +55,35 @@ public class TestSolrQueryParser extends
         ,"//*[@numFound='2']"
     );
   }
+
+  @Test
+  public void testLocalParamsInQP() throws Exception {
+    assertJQ(req("q","qaz {!term f=text v=$qq} wsx", "qq","now")
+        ,"/response/numFound==2"
+    );
+
+    assertJQ(req("q","qaz {!term f=text v=$qq} wsx", "qq","nomatch")
+        ,"/response/numFound==0"
+    );
+
+    assertJQ(req("q","qaz {!term f=text}now wsx", "qq","now")
+        ,"/response/numFound==2"
+    );
+
+    assertJQ(req("q","qaz {!term f=foo_s v='a \\' \" \\\\ {! ) } ( { z'} wsx")           // single quote escaping
+        ,"/response/numFound==1"
+    );
+
+    assertJQ(req("q","qaz {!term f=foo_s v=\"a ' \\\" \\\\ {! ) } ( { z\"} wsx")         // double quote escaping
+        ,"/response/numFound==1"
+    );
+
+    // double-join to test back-to-back local params
+    assertJQ(req("q","qaz {!join from=www_s to=eee_s}{!join from=qqq_s to=www_s}id:10" )
+        ,"/response/docs/[0]/id=='12'"
+    );
+
+
+  }
+
 }

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestValueSourceCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestValueSourceCache.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestValueSourceCache.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestValueSourceCache.java Fri Nov 23 19:45:50 2012
@@ -17,7 +17,6 @@ package org.apache.solr.search;
  * limitations under the License.
  */
 
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.search.Query;
 import org.apache.lucene.search.QueryUtils;
 import org.apache.solr.SolrTestCaseJ4;
@@ -41,14 +40,14 @@ public class TestValueSourceCache extend
     _func = null;
   }
 
-  Query getQuery(String query) throws ParseException {
+  Query getQuery(String query) throws SyntaxError {
     _func.setString(query);
     return _func.parse();
   }
 
   // This is actually also tested by the tests for val_d1 below, but the bug was reported against geodist()...
   @Test
-  public void testGeodistSource() throws ParseException {
+  public void testGeodistSource() throws SyntaxError {
     Query q_home = getQuery("geodist(home_ll, 45.0, 43.0)");
     Query q_work = getQuery("geodist(work_ll, 45.0, 43.0)");
     Query q_home2 = getQuery("geodist(home_ll, 45.0, 43.0)");
@@ -57,7 +56,7 @@ public class TestValueSourceCache extend
   }
 
   @Test
-  public void testNumerics() throws ParseException {
+  public void testNumerics() throws SyntaxError {
     String[] templates = new String[]{
         "sum(#v0, #n0)",
         "product(pow(#v0,#n0),#v1,#n1)",
@@ -94,7 +93,7 @@ public class TestValueSourceCache extend
 
   // This test should will fail because q1 and q3 evaluate as equal unless
   // fixes for bug 2829 are in place.
-  void tryQuerySameTypes(String template, String numbers, String type) throws ParseException {
+  void tryQuerySameTypes(String template, String numbers, String type) throws SyntaxError {
     String s1 = template;
     String s2 = template;
     String s3 = template;
@@ -120,7 +119,7 @@ public class TestValueSourceCache extend
 
   // These should always and forever fail, and would have failed without the fixes for 2829, but why not make
   // some more tests just in case???
-  void tryQueryDiffTypes(String template, String numbers, String[] types) throws ParseException {
+  void tryQueryDiffTypes(String template, String numbers, String[] types) throws SyntaxError {
     String s1 = template;
     String s2 = template;
 

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/function/NvlValueSourceParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/function/NvlValueSourceParser.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/function/NvlValueSourceParser.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/function/NvlValueSourceParser.java Fri Nov 23 19:45:50 2012
@@ -20,9 +20,9 @@ package org.apache.solr.search.function;
 import org.apache.lucene.queries.function.FunctionValues;
 import org.apache.lucene.queries.function.ValueSource;
 import org.apache.lucene.queries.function.valuesource.SimpleFloatFunction;
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.search.FunctionQParser;
+import org.apache.solr.search.SyntaxError;
 import org.apache.solr.search.ValueSourceParser;
 
 /**
@@ -46,7 +46,7 @@ public class NvlValueSourceParser extend
     private float nvlFloatValue = 0.0f;
 
     @Override
-    public ValueSource parse(FunctionQParser fp) throws ParseException {
+    public ValueSource parse(FunctionQParser fp) throws SyntaxError {
       ValueSource source = fp.parseValueSource();
       final float nvl = fp.parseFloat();
 

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/DateMathParserTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/DateMathParserTest.java?rev=1413042&r1=1413041&r2=1413042&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/DateMathParserTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/util/DateMathParserTest.java Fri Nov 23 19:45:50 2012
@@ -329,7 +329,7 @@ public class DateMathParserTest extends 
     for (String command : badCommands.keySet()) {
       try {
         Date out = p.parseMath(command);
-        fail("Didn't generate ParseException for: " + command);
+        fail("Didn't generate SyntaxError for: " + command);
       } catch (ParseException e) {
         assertEquals("Wrong pos for: " + command + " => " + e.getMessage(),
                      badCommands.get(command).intValue(), e.getErrorOffset());