diff --git a/solr/core/src/java/org/apache/solr/update/processor/NumFieldLimitingUpdateRequestProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/NumFieldLimitingUpdateRequestProcessor.java index 124443d9674..dce8d9b0906 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/NumFieldLimitingUpdateRequestProcessor.java +++ b/solr/core/src/java/org/apache/solr/update/processor/NumFieldLimitingUpdateRequestProcessor.java @@ -25,6 +25,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** Update request processor created by {@link NumFieldLimitingUpdateRequestProcessorFactory} */ public class NumFieldLimitingUpdateRequestProcessor extends UpdateRequestProcessor { private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); @@ -46,6 +47,7 @@ public NumFieldLimitingUpdateRequestProcessor( this.warnOnly = warnOnly; } + @Override public void processAdd(AddUpdateCommand cmd) throws IOException { if (coreExceedsFieldLimit()) { throwExceptionOrLog(cmd.getPrintableId()); diff --git a/solr/core/src/java/org/apache/solr/update/processor/NumFieldLimitingUpdateRequestProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/NumFieldLimitingUpdateRequestProcessorFactory.java index 308e25b9f2c..2df05ae1f8c 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/NumFieldLimitingUpdateRequestProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/NumFieldLimitingUpdateRequestProcessorFactory.java @@ -65,9 +65,8 @@ public class NumFieldLimitingUpdateRequestProcessorFactory extends UpdateRequest @Override public void inform(final SolrCore core) { - // register a commit callback for monitoring the number of fields in the schema numFieldsMonitor = new NumFieldsMonitor(core); - core.getUpdateHandler().registerCommitCallback(numFieldsMonitor); + core.registerFirstSearcherListener(numFieldsMonitor); core.registerNewSearcherListener(numFieldsMonitor); } diff --git a/solr/core/src/java/org/apache/solr/update/processor/NumFieldsMonitor.java b/solr/core/src/java/org/apache/solr/update/processor/NumFieldsMonitor.java index 5a9b1fcf972..53253f3afb1 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/NumFieldsMonitor.java +++ b/solr/core/src/java/org/apache/solr/update/processor/NumFieldsMonitor.java @@ -16,7 +16,6 @@ */ package org.apache.solr.update.processor; -import java.io.IOException; import org.apache.solr.core.AbstractSolrEventListener; import org.apache.solr.core.SolrCore; import org.apache.solr.search.SolrIndexSearcher; @@ -27,13 +26,7 @@ public class NumFieldsMonitor extends AbstractSolrEventListener { public NumFieldsMonitor(SolrCore core) { super(core); - - try { - core.withSearcher(s -> this.numFields = s.getFieldInfos().size()); - } catch (IOException e) { - // Should not happen, but required by the signature of withSearcher above - this.numFields = -1; - } + this.numFields = -1; } @Override diff --git a/solr/core/src/test-files/solr/configsets/cloud-minimal-field-limiting/conf/solrconfig.xml b/solr/core/src/test-files/solr/configsets/cloud-minimal-field-limiting/conf/solrconfig.xml index 98bd3622a58..00f1ab3714b 100644 --- a/solr/core/src/test-files/solr/configsets/cloud-minimal-field-limiting/conf/solrconfig.xml +++ b/solr/core/src/test-files/solr/configsets/cloud-minimal-field-limiting/conf/solrconfig.xml @@ -44,23 +44,10 @@ - - ${solr.test.maxFields:1234} - - - - java.lang.String - text_general - - *_str - 256 - - - true - - - + + + ${solr.test.maxFields:1234} +