From 85d580240035700d14933cdff46dead139e54997 Mon Sep 17 00:00:00 2001 From: "Chris M. Hostetter" Date: Thu, 18 Feb 2010 21:29:08 +0000 Subject: [PATCH] SOLR-1695: revert DocumentBuilder changes from r9112332 and r911228 and 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 --- .../apache/solr/update/DocumentBuilder.java | 26 ++++--------------- .../org/apache/solr/update/UpdateHandler.java | 4 +-- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/src/java/org/apache/solr/update/DocumentBuilder.java b/src/java/org/apache/solr/update/DocumentBuilder.java index 8113389d5ce..83d331cbe1e 100644 --- a/src/java/org/apache/solr/update/DocumentBuilder.java +++ b/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 class DocumentBuilder { { Document out = new Document(); out.setBoost( doc.getDocumentBoost() ); - - final SchemaField uniqueKeyField = schema.getUniqueKeyField(); - if (null != uniqueKeyField) { - Collection 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 class DocumentBuilder { // 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() ); diff --git a/src/java/org/apache/solr/update/UpdateHandler.java b/src/java/org/apache/solr/update/UpdateHandler.java index ba4af87a893..2a6c76f0946 100644 --- a/src/java/org/apache/solr/update/UpdateHandler.java +++ b/src/java/org/apache/solr/update/UpdateHandler.java @@ -111,9 +111,9 @@ public abstract class UpdateHandler implements SolrInfoMBean { // 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] ); }