From 62687eef9a80745c53148daa238abeb7cb16612c Mon Sep 17 00:00:00 2001 From: gjoranv Date: Mon, 25 Jan 2021 14:17:55 +0100 Subject: Handle null dimensions without throwing NPE. --- .../container/jdisc/state/MetricsPacketsHandler.java | 2 ++ .../com/yahoo/container/jdisc/state/StateHandler.java | 16 +++++++++------- 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> 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> it = tuple.dim.iterator(); - if (it.hasNext() && includeDimensions) { - JSONObjectWithLegibleException jsonDim = new JSONObjectWithLegibleException(); - while (it.hasNext()) { - Map.Entry entry = it.next(); - jsonDim.put(entry.getKey(), entry.getValue()); + if (tuple.dim != null) { + Iterator> it = tuple.dim.iterator(); + if (it.hasNext() && includeDimensions) { + JSONObjectWithLegibleException jsonDim = new JSONObjectWithLegibleException(); + while (it.hasNext()) { + Map.Entry entry = it.next(); + jsonDim.put(entry.getKey(), entry.getValue()); + } + jsonTuple.put("dimensions", jsonDim); } - jsonTuple.put("dimensions", jsonDim); } jsonMetric.append("values", jsonTuple); } -- cgit v1.2.3