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