summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2021-01-25 14:17:55 +0100
committergjoranv <gv@verizonmedia.com>2021-01-25 14:21:44 +0100
commit62687eef9a80745c53148daa238abeb7cb16612c (patch)
treeebba2248981128982aea0be9ee3cfa701c99bd52
parent8612ccf19dbfdcaec328a1743142ded1ab85274f (diff)
Handle null dimensions without throwing NPE.
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java2
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java16
2 files changed, 11 insertions, 7 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java
index c1a6f650a9c..a3bfe53e972 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java
@@ -173,6 +173,8 @@ public class MetricsPacketsHandler extends AbstractRequestHandler {
}
private void addDimensions(MetricDimensions metricDimensions, JSONObjectWithLegibleException packet) throws JSONException {
+ if (metricDimensions == null) return;
+
Iterator<Map.Entry<String, String>> dimensionsIterator = metricDimensions.iterator();
if (dimensionsIterator.hasNext()) {
JSONObject jsonDim = new JSONObjectWithLegibleException();
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java
index 8858465e846..81959756b14 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java
@@ -254,14 +254,16 @@ public class StateHandler extends AbstractRequestHandler {
} else {
throw new UnsupportedOperationException(tuple.val.getClass().getName());
}
- Iterator<Map.Entry<String, String>> it = tuple.dim.iterator();
- if (it.hasNext() && includeDimensions) {
- JSONObjectWithLegibleException jsonDim = new JSONObjectWithLegibleException();
- while (it.hasNext()) {
- Map.Entry<String, String> entry = it.next();
- jsonDim.put(entry.getKey(), entry.getValue());
+ if (tuple.dim != null) {
+ Iterator<Map.Entry<String, String>> it = tuple.dim.iterator();
+ if (it.hasNext() && includeDimensions) {
+ JSONObjectWithLegibleException jsonDim = new JSONObjectWithLegibleException();
+ while (it.hasNext()) {
+ Map.Entry<String, String> entry = it.next();
+ jsonDim.put(entry.getKey(), entry.getValue());
+ }
+ jsonTuple.put("dimensions", jsonDim);
}
- jsonTuple.put("dimensions", jsonDim);
}
jsonMetric.append("values", jsonTuple);
}