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 ho...@apache.org on 2007/07/11 19:57:53 UTC

svn commit: r555345 - in /lucene/solr/trunk: CHANGES.txt src/java/org/apache/solr/common/params/RequiredSolrParams.java src/test/org/apache/solr/common/params/SolrParamTest.java

Author: hossman
Date: Wed Jul 11 10:57:51 2007
New Revision: 555345

URL: http://svn.apache.org/viewvc?view=rev&rev=555345
Log:
SOLR-297 - fixed the RequiredSolrParams.getField* methods, they weren't falling back to the non field specific param names before failing with an exception

Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/src/java/org/apache/solr/common/params/RequiredSolrParams.java
    lucene/solr/trunk/src/test/org/apache/solr/common/params/SolrParamTest.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?view=diff&rev=555345&r1=555344&r2=555345
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Wed Jul 11 10:57:51 2007
@@ -113,6 +113,10 @@
 
  5. SOLR-292: Fix MoreLikeThis facet counting. (Pieter Berkel via ryan)
 
+ 6. SOLR-297: Fix bug in RequiredSolrParams where requiring a field
+    specific param would fail if a general default value had been supplied.
+    (hossman)
+ 
 Other Changes
  1. SOLR-135: Moved common classes to org.apache.solr.common and altered the
     build scripts to make two jars: apache-solr-1.3.jar and 

Modified: lucene/solr/trunk/src/java/org/apache/solr/common/params/RequiredSolrParams.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/common/params/RequiredSolrParams.java?view=diff&rev=555345&r1=555344&r2=555345
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/common/params/RequiredSolrParams.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/common/params/RequiredSolrParams.java Wed Jul 11 10:57:51 2007
@@ -50,7 +50,40 @@
     }
     return val;
   }
+  
+  @Override
+  public String getFieldParam(final String field, final String param) {
+    final String fpname = fpname(field,param);
+    String val = params.get(fpname);
+    if (null == val) {
+      // don't call this.get, we want a specified exception message
+      val = params.get(param);
+      if (null == val)  {
+        throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,
+                                 "Missing required parameter: "+fpname+
+                                 " (or default: "+param+")" );
+      }
+    }
+    return val;
+  }
 
+  @Override
+  public String[] getFieldParams(final String field, final String param) {
+    final String fpname = fpname(field,param);
+    String[] val = params.getParams(fpname);
+    if (null == val) {
+      // don't call this.getParams, we want a specified exception message
+      val = params.getParams(param);
+      if (null == val)  {
+        throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,
+                                 "Missing required parameter: "+fpname+
+                                 " (or default: "+param+")" );
+      }
+    }
+    return val;
+  }
+
+  
   @Override
   public String[] getParams(String param) {
     String[] vals = params.getParams(param);

Modified: lucene/solr/trunk/src/test/org/apache/solr/common/params/SolrParamTest.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/common/params/SolrParamTest.java?view=diff&rev=555345&r1=555344&r2=555345
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/common/params/SolrParamTest.java (original)
+++ lucene/solr/trunk/src/test/org/apache/solr/common/params/SolrParamTest.java Wed Jul 11 10:57:51 2007
@@ -127,7 +127,11 @@
     // field value present
     assertEquals( pbool  , required.getFieldBool(  "fl", "bool" ) );
     // field defaulting (fall through to non-field-specific value)
-    //assertEquals( pint   , required.getFieldInt( "fff",  "int"      ) );
+    assertEquals( pstr   , required.getFieldParams("fakefield", "str")[0] );
+    assertEquals( pstr   , required.getFieldParam( "fakefield", "str"   ) );
+    assertEquals( pbool  , required.getFieldBool(  "fakefield", "bool"  ) );
+    assertEquals( pint   , required.getFieldInt(   "fakefield", "int"   ) );
+    assertEquals( pfloat , required.getFieldFloat( "fakefield", "float" ) );
     
     // Required params which are missing: These should throw a 400
     assertEquals( 400, getReturnCode( new Runnable() { public void run() { required.get( "aaaa" ); } } ) );