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" ); } } ) );