diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 6000f95645c..b885202c2c0 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -206,6 +206,9 @@ Bug Fixes * SOLR-10383: Fix debug related NullPointerException in solr/contrib/ltr OriginalScoreFeature class. (Vitezslav Zak, Christine Poerschke) +* SOLR-10416: The JSON output of /admin/metrics is fixed to write the container as a + map (SimpleOrderedMap) instead of an array (NamedList). (shalin) + ================== 6.5.0 ================== Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release. diff --git a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java index 25f317c00d7..4dc86d97855 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java @@ -33,6 +33,7 @@ import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; import org.apache.solr.common.SolrException; import org.apache.solr.common.util.NamedList; +import org.apache.solr.common.util.SimpleOrderedMap; import org.apache.solr.common.util.StrUtils; import org.apache.solr.core.CoreContainer; import org.apache.solr.handler.RequestHandlerBase; @@ -79,7 +80,7 @@ public class MetricsHandler extends RequestHandlerBase implements PermissionName List metricFilters = metricTypes.stream().map(MetricType::asMetricFilter).collect(Collectors.toList()); Set requestedRegistries = parseRegistries(req); - NamedList response = new NamedList(); + NamedList response = new SimpleOrderedMap(); for (String registryName : requestedRegistries) { MetricRegistry registry = metricManager.registry(registryName); response.add(registryName, MetricUtils.toNamedList(registry, metricFilters, mustMatchFilter, false, diff --git a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java index 81e14d944a5..2f849977e9f 100644 --- a/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java @@ -22,6 +22,7 @@ import java.util.Map; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.util.NamedList; +import org.apache.solr.common.util.SimpleOrderedMap; import org.apache.solr.response.SolrQueryResponse; import org.junit.BeforeClass; import org.junit.Test; @@ -147,9 +148,9 @@ public class MetricsHandlerTest extends SolrTestCaseJ4 { handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", "group", "node", "type", "timer", "prefix", "CONTAINER.cores"), resp); values = resp.getValues(); assertNotNull(values.get("metrics")); - values = (NamedList) values.get("metrics"); - assertEquals(1, values.size()); - assertEquals(0, ((NamedList)values.get("solr.node")).size()); + SimpleOrderedMap map = (SimpleOrderedMap) values.get("metrics"); + assertEquals(1, map.size()); + assertEquals(0, ((NamedList)map.get("solr.node")).size()); } @Test