You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by eh...@apache.org on 2015/01/04 13:51:50 UTC
svn commit: r1649324 - in /lucene/dev/branches/branch_5x: ./ solr/
solr/core/ solr/core/src/java/org/apache/solr/update/processor/
solr/core/src/test/org/apache/solr/update/processor/
Author: ehatcher
Date: Sun Jan 4 12:51:50 2015
New Revision: 1649324
URL: http://svn.apache.org/r1649324
Log:
SOLR-6735: Make CloneFieldUpdateProcessorFactory null safe (merged with CHANGES.txt manual edits from trunk r1649323)
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/solr/ (props changed)
lucene/dev/branches/branch_5x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/solr/core/ (props changed)
lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/processor/CloneFieldUpdateProcessorFactory.java
lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java
Modified: lucene/dev/branches/branch_5x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/CHANGES.txt?rev=1649324&r1=1649323&r2=1649324&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/solr/CHANGES.txt Sun Jan 4 12:51:50 2015
@@ -353,6 +353,9 @@ Bug Fixes
* SOLR-6779: fix /browse for schemaless example (ehatcher)
+* SOLR-6735: Make CloneFieldUpdateProcessorFactory null safe (Steve Davids via ehatcher)
+
+
Optimizations
----------------------
Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/processor/CloneFieldUpdateProcessorFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/processor/CloneFieldUpdateProcessorFactory.java?rev=1649324&r1=1649323&r2=1649324&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/processor/CloneFieldUpdateProcessorFactory.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/update/processor/CloneFieldUpdateProcessorFactory.java Sun Jan 4 12:51:50 2015
@@ -16,31 +16,25 @@
*/
package org.apache.solr.update.processor;
+import static org.apache.solr.common.SolrException.ErrorCode.SERVER_ERROR;
+
import java.io.IOException;
-import java.util.Collection;
import java.util.ArrayList;
-import java.util.List;
+import java.util.Collection;
import java.util.HashSet;
-
-import org.apache.solr.core.SolrCore;
-import org.apache.solr.util.plugin.SolrCoreAware;
-
-import org.apache.solr.common.util.NamedList;
-
-import org.apache.solr.common.SolrInputField;
-import org.apache.solr.common.SolrInputDocument;
+import java.util.List;
import org.apache.solr.common.SolrException;
-import static org.apache.solr.common.SolrException.ErrorCode.SERVER_ERROR;
-
+import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.SolrInputField;
+import org.apache.solr.common.util.NamedList;
+import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
-
import org.apache.solr.update.AddUpdateCommand;
-
-import org.apache.solr.update.processor.FieldMutatingUpdateProcessorFactory.SelectorParams;
import org.apache.solr.update.processor.FieldMutatingUpdateProcessor.FieldNameSelector;
-
+import org.apache.solr.update.processor.FieldMutatingUpdateProcessorFactory.SelectorParams;
+import org.apache.solr.util.plugin.SolrCoreAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -221,8 +215,11 @@ public class CloneFieldUpdateProcessorFa
boolean modified = false;
for (final String fname : doc.getFieldNames()) {
if (! srcSelector.shouldMutate(fname)) continue;
+
+ Collection<Object> srcFieldValues = doc.getFieldValues(fname);
+ if(srcFieldValues == null || srcFieldValues.isEmpty()) continue;
- for (Object val : doc.getFieldValues(fname)) {
+ for (Object val : srcFieldValues) {
// preserve existing dest boost (multiplicitive), ignore src boost
destField.addValue(val, 1.0f);
}
Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java?rev=1649324&r1=1649323&r2=1649324&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/update/processor/FieldMutatingUpdateProcessorTest.java Sun Jan 4 12:51:50 2015
@@ -823,6 +823,7 @@ public class FieldMutatingUpdateProcesso
f("editors", "John W. Campbell"),
f("store1_price", 87),
f("store2_price", 78),
+ f("store3_price", (Object) null),
f("list_price", 1000)));
assertNotNull(d);
assertEquals("misc",d.getFieldValue("category"));