Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

SOLR-1695: revert DocumentBuilder changes from r9112332 and r911228 a…

…nd improve the existing error messages in UpdateHandler.getIndexedId instead

git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@911595 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information...
commit 0d46de483aa643723a3af70ad0c73f3806ec545a 1 parent cc88df0
@hossman hossman authored
View
26 src/java/org/apache/solr/update/DocumentBuilder.java
@@ -17,7 +17,6 @@
package org.apache.solr.update;
-import java.util.Collection;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -226,22 +225,6 @@ public static Document toDocument( SolrInputDocument doc, IndexSchema schema )
{
Document out = new Document();
out.setBoost( doc.getDocumentBoost() );
-
- final SchemaField uniqueKeyField = schema.getUniqueKeyField();
- if (null != uniqueKeyField) {
- Collection<Object> keys = doc.getFieldValues(uniqueKeyField.getName());
- if (null == keys || keys.isEmpty()) {
- throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
- "Document missing a value for uniqueKey field: " +
- uniqueKeyField.getName());
- }
- if (1 < keys.size()) {
- throw new SolrException
- (SolrException.ErrorCode.BAD_REQUEST,
- "Document contains multiple values for uniqueKey field: " +
- uniqueKeyField.getName());
- }
- }
// Load fields from SolrDocument to Document
for( SolrInputField field : doc ) {
@@ -252,10 +235,11 @@ public static Document toDocument( SolrInputDocument doc, IndexSchema schema )
// Make sure it has the correct number
if( sfield!=null && !sfield.multiValued() && field.getValueCount() > 1 ) {
- String id = ( uniqueKeyField == null )
- ? ""
- : ("["+doc.getFieldValue( uniqueKeyField.getName() )+"] ");
-
+ String id = "";
+ SchemaField sf = schema.getUniqueKeyField();
+ if( sf != null ) {
+ id = "["+doc.getFieldValue( sf.getName() )+"] ";
+ }
throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,
"ERROR: "+id+"multiple values encountered for non multiValued field " +
sfield.getName() + ": " +field.getValue() );
View
4 src/java/org/apache/solr/update/UpdateHandler.java
@@ -111,9 +111,9 @@ protected final String getIndexedId(Document doc) {
// form have that transformation already performed and stored as the field value.
Fieldable[] id = doc.getFieldables( idField.getName() );
if (id == null || id.length < 1)
- throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"Document is missing uniqueKey field " + idField.getName());
+ throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"Document is missing mandatory uniqueKey field: " + idField.getName());
if( id.length > 1 )
- throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"Document specifies multiple unique ids! " + idField.getName());
+ throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"Document contains multiple values for uniqueKey field: " + idField.getName());
return idFieldType.storedToIndexed( id[0] );
}
Please sign in to comment.
Something went wrong with that request. Please try again.