You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2017/03/13 19:30:41 UTC
lucene-solr:master: SOLR-10269 MetricHandler JSON output was
incorrect.
Repository: lucene-solr
Updated Branches:
refs/heads/master c8bad8c10 -> e3a0b428f
SOLR-10269 MetricHandler JSON output was incorrect.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/e3a0b428
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/e3a0b428
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/e3a0b428
Branch: refs/heads/master
Commit: e3a0b428fd7dd8747a6b48ef165300ebb23b3198
Parents: c8bad8c
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Mon Mar 13 20:29:22 2017 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Mon Mar 13 20:30:27 2017 +0100
----------------------------------------------------------------------
solr/CHANGES.txt | 2 ++
.../src/java/org/apache/solr/util/stats/MetricUtils.java | 7 ++++---
.../apache/solr/handler/admin/MetricsHandlerTest.java | 11 +++++++----
3 files changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e3a0b428/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 1469d3e..63424dd 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -235,6 +235,8 @@ Bug Fixes
* SOLR-9838: "inc" atomic update doesn't respect default field value (hoss, Amrit Sarkar, Ishan Chattopadhyaya)
+* SOLR-10269: MetricsHandler JSON output incorrect. (ab)
+
Optimizations
----------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e3a0b428/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
index 5a7c680..70fd467 100644
--- a/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/stats/MetricUtils.java
@@ -38,6 +38,7 @@ import com.codahale.metrics.Snapshot;
import com.codahale.metrics.Timer;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.util.NamedList;
+import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.metrics.AggregateMetric;
/**
@@ -117,12 +118,12 @@ public class MetricUtils {
MetricFilter mustMatchFilter, boolean skipHistograms,
boolean skipAggregateValues,
Map<String, Object> metadata) {
- NamedList result = new NamedList();
+ NamedList result = new SimpleOrderedMap();
toNamedMaps(registry, shouldMatchFilters, mustMatchFilter, skipHistograms, skipAggregateValues, (k, v) -> {
- result.add(k, new NamedList(v));
+ result.add(k, v);
});
if (metadata != null && !metadata.isEmpty()) {
- result.add("_metadata_", new NamedList(metadata));
+ result.add("_metadata_", metadata);
}
return result;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e3a0b428/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
----------------------------------------------------------------------
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 a1b29db..2fd7e9c 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
@@ -17,6 +17,8 @@
package org.apache.solr.handler.admin;
+import java.util.Map;
+
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.util.NamedList;
@@ -48,13 +50,14 @@ public class MetricsHandlerTest extends SolrTestCaseJ4 {
NamedList nl = (NamedList) values.get("solr.core.collection1");
assertNotNull(nl);
assertNotNull(nl.get("SEARCHER.new.errors")); // counter type
- assertNotNull(((NamedList) nl.get("SEARCHER.new.errors")).get("count"));
- assertEquals(0L, ((NamedList) nl.get("SEARCHER.new.errors")).get("count"));
+ assertNotNull(((Map) nl.get("SEARCHER.new.errors")).get("count"));
+ // response wasn't serialized so we get here whatever MetricUtils produced instead of NamedList
+ assertEquals(0L, ((Map) nl.get("SEARCHER.new.errors")).get("count"));
nl = (NamedList) values.get("solr.node");
assertNotNull(nl.get("CONTAINER.cores.loaded")); // int gauge
- assertEquals(1, ((NamedList) nl.get("CONTAINER.cores.loaded")).get("value"));
+ assertEquals(1, ((Map) nl.get("CONTAINER.cores.loaded")).get("value"));
assertNotNull(nl.get("ADMIN./admin/authorization.clientErrors")); // timer type
- assertEquals(5, ((NamedList) nl.get("ADMIN./admin/authorization.clientErrors")).size());
+ assertEquals(5, ((Map) nl.get("ADMIN./admin/authorization.clientErrors")).size());
resp = new SolrQueryResponse();
handler.handleRequestBody(req(CommonParams.QT, "/admin/metrics", CommonParams.WT, "json", "group", "jvm,jetty"), resp);