From f7853290b9c62ce07af648d78322a3c48914f336 Mon Sep 17 00:00:00 2001 From: Alexey Kudinkin Date: Thu, 30 Jul 2020 12:27:50 -0700 Subject: [PATCH] Fixed backward-compatibility breaking change; Added test --- core/src/main/java/com/uber/m3/tally/ScopeImpl.java | 10 +++++++++- .../src/test/java/com/uber/m3/tally/ScopeImplTest.java | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/uber/m3/tally/ScopeImpl.java b/core/src/main/java/com/uber/m3/tally/ScopeImpl.java index 3601581..7211040 100644 --- a/core/src/main/java/com/uber/m3/tally/ScopeImpl.java +++ b/core/src/main/java/com/uber/m3/tally/ScopeImpl.java @@ -25,6 +25,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedQueue; @@ -89,7 +90,14 @@ public Timer timer(String name) { public Histogram histogram(String name, Buckets buckets) { return histograms.computeIfAbsent(name, ignored -> // NOTE: This will called at most once - new HistogramImpl(this, fullyQualifiedName(name), tags, buckets)); + new HistogramImpl( + this, + fullyQualifiedName(name), + tags, + Optional.ofNullable(buckets) + .orElse(defaultBuckets) + ) + ); } @Override diff --git a/core/src/test/java/com/uber/m3/tally/ScopeImplTest.java b/core/src/test/java/com/uber/m3/tally/ScopeImplTest.java index 89de860..dd413a8 100644 --- a/core/src/test/java/com/uber/m3/tally/ScopeImplTest.java +++ b/core/src/test/java/com/uber/m3/tally/ScopeImplTest.java @@ -76,7 +76,14 @@ public void metricCreation() { ); assertNotNull(histogram); + Histogram histogramDefaultBuckets = scope.histogram( + "new-histogram-default-buckets", + null + ); + assertNotNull(histogramDefaultBuckets); + Histogram sameHistogram = scope.histogram("new-histogram", null); + // Should be the same Histogram object and not a new instance assertTrue(histogram == sameHistogram); }