From ecd8974c5605c50c6c422af1ed0bbb946b19ae82 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Tue, 21 Jul 2020 11:02:57 +0200 Subject: [PATCH] Update AtomicTimeAbsoluteSamples.java and AtomicTimeIncrementalSamples.java --- .../warp/commonutils/metrics/AtomicTimeAbsoluteSamples.java | 5 ++++- .../commonutils/metrics/AtomicTimeIncrementalSamples.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/warp/commonutils/metrics/AtomicTimeAbsoluteSamples.java b/src/main/java/org/warp/commonutils/metrics/AtomicTimeAbsoluteSamples.java index 49b1fec..dd3128a 100644 --- a/src/main/java/org/warp/commonutils/metrics/AtomicTimeAbsoluteSamples.java +++ b/src/main/java/org/warp/commonutils/metrics/AtomicTimeAbsoluteSamples.java @@ -94,7 +94,10 @@ public class AtomicTimeAbsoluteSamples implements AtomicTimeAbsoluteSamplesSnaps preciseTimeRange = currentSampleStartTime - startTime; } - double samplesCount = Math.min(Math.max(preciseTimeRange / sampleTime, 1d), samples.length); + double samplesCount = Math.min(Math.max(preciseTimeRange / sampleTime, 1d), samples.length - 1); + if (samplesCount < 0) { + return 0; + } double value = 0; for (int i = 1; i <= samplesCount; i++) { value += samples[i]; diff --git a/src/main/java/org/warp/commonutils/metrics/AtomicTimeIncrementalSamples.java b/src/main/java/org/warp/commonutils/metrics/AtomicTimeIncrementalSamples.java index 95d3a38..9ad6807 100644 --- a/src/main/java/org/warp/commonutils/metrics/AtomicTimeIncrementalSamples.java +++ b/src/main/java/org/warp/commonutils/metrics/AtomicTimeIncrementalSamples.java @@ -87,7 +87,10 @@ public class AtomicTimeIncrementalSamples implements AtomicTimeIncrementalSample preciseTimeRange = currentSampleStartTime - startTime; } - double samplesCount = Math.min(Math.max(preciseTimeRange / sampleTime, 1d), samples.length); + double samplesCount = Math.min(Math.max(preciseTimeRange / sampleTime, 1d), samples.length - 1); + if (samplesCount < 0) { + return 0; + } double roundedTimeRange = samplesCount * sampleTime; double value = 0; for (int i = 1; i <= samplesCount; i++) {