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