diff --git a/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/internal/state/SynchronousMetricStorageTest.java b/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/internal/state/SynchronousMetricStorageTest.java index cbaa2aa303b..f808a0e85f1 100644 --- a/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/internal/state/SynchronousMetricStorageTest.java +++ b/sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/internal/state/SynchronousMetricStorageTest.java @@ -413,16 +413,15 @@ void recordAndCollect_concurrentStressTest( // If we terminate when latch.count() == 0, the last collect may have occurred before // the last recorded measurement. To ensure we collect all measurements, we collect // one extra time after latch.count() == 0. - while (latch.getCount() != 0 && extraCollects <= 1) { + while (latch.getCount() != 0 || extraCollects <= 1) { Uninterruptibles.sleepUninterruptibly(Duration.ofMillis(1)); MetricData metricData = storage.collect(Resource.empty(), InstrumentationScopeInfo.empty(), 0, 1); - if (metricData.isEmpty()) { - continue; + if (!metricData.isEmpty()) { + metricData.getDoubleSumData().getPoints().stream() + .findFirst() + .ifPresent(pointData -> collect.accept(pointData.getValue(), cumulativeSum)); } - metricData.getDoubleSumData().getPoints().stream() - .findFirst() - .ifPresent(pointData -> collect.accept(pointData.getValue(), cumulativeSum)); if (latch.getCount() == 0) { extraCollects++; }