aboutsummaryrefslogtreecommitdiffstats
path: root/docker-api
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@oath.com>2019-02-05 12:09:13 +0100
committerOla Aunrønning <olaa@oath.com>2019-02-05 12:10:04 +0100
commita2ffe0ca7d44c58f90857363797bf9f8f7939793 (patch)
treeb789862daf8af5812754f9da96b06a38219d8739 /docker-api
parent25cca34e9a5de329abe6a6e4b789457581ac74b2 (diff)
Use synchronized. Handle non-existing keys differently
Diffstat (limited to 'docker-api')
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java24
1 files changed, 12 insertions, 12 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java
index 7e8f3704fa0..58126a59cbb 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java
@@ -6,11 +6,13 @@ import com.yahoo.metrics.simple.MetricReceiver;
import com.yahoo.metrics.simple.Point;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -107,24 +109,22 @@ public class MetricReceiverWrapper {
}
public void deleteMetricByDimension(String name, Dimensions dimensionsToRemove, DimensionType type) {
- try{
- metrics.get(type)
- .get(name)
- .metricsByDimensions()
- .remove(dimensionsToRemove);
- } catch (NullPointerException e) {}
+ synchronized (monitor) {
+ Optional.ofNullable(metrics.get(type))
+ .map(m -> m.get(name))
+ .map(ApplicationMetrics::metricsByDimensions)
+ .ifPresent(m -> m.remove(dimensionsToRemove));
+ }
}
// For testing
Map<String, Number> getMetricsForDimension(String application, Dimensions dimensions) {
synchronized (monitor) {
Map<Dimensions, Map<String, MetricValue>> metricsByDimensions = getOrCreateApplicationMetrics(application, DimensionType.DEFAULT);
- try {
- return metricsByDimensions.get(dimensions).entrySet().stream().collect(
- Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().getValue()));
- } catch (NullPointerException e) {
- return new HashMap<>();
- }
+ return metricsByDimensions.getOrDefault(dimensions, Collections.emptyMap())
+ .entrySet()
+ .stream()
+ .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().getValue()));
}
}