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}
+