Skip to content

Commit 353324b

Browse files
committed
Merge branch '1.9.x' into 1.10.x
2 parents c42918e + 47bfb00 commit 353324b

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

micrometer-core/src/main/java/io/micrometer/core/instrument/distribution/FixedBoundaryVictoriaMetricsHistogram.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@ public class FixedBoundaryVictoriaMetricsHistogram implements Histogram {
6666
static {
6767
VMRANGES = new String[3 + BUCKETS_COUNT * BUCKET_SIZE];
6868
VMRANGES[0] = "0...0";
69-
VMRANGES[1] = String.format("0...%.1fe%d", 1.0, E10MIN);
70-
VMRANGES[2] = String.format("%.1fe%d...+Inf", 1.0, E10MAX);
69+
VMRANGES[1] = String.format(Locale.US, "0...%.1fe%d", 1.0, E10MIN);
70+
VMRANGES[2] = String.format(Locale.US, "%.1fe%d...+Inf", 1.0, E10MAX);
7171

7272
UPPER_BOUNDS = new double[3 + BUCKETS_COUNT * BUCKET_SIZE];
7373
UPPER_BOUNDS[0] = 0.0;
7474
UPPER_BOUNDS[1] = BigDecimal.TEN.pow(E10MIN, MathContext.DECIMAL128).doubleValue();
7575
UPPER_BOUNDS[2] = Double.POSITIVE_INFINITY;
7676

7777
int idx = 3;
78-
String start = String.format("%.1fe%d", 1.0, E10MIN);
78+
String start = String.format(Locale.US, "%.1fe%d", 1.0, E10MIN);
7979

8080
for (int bucketIdx = 0; bucketIdx < BUCKETS_COUNT; bucketIdx++) {
8181
for (int offset = 0; offset < BUCKET_SIZE; offset++) {
@@ -85,7 +85,7 @@ public class FixedBoundaryVictoriaMetricsHistogram implements Histogram {
8585
m = 1;
8686
e10++;
8787
}
88-
String end = String.format("%.1fe%d", m, e10);
88+
String end = String.format(Locale.US, "%.1fe%d", m, e10);
8989
VMRANGES[idx] = start + "..." + end;
9090

9191
UPPER_BOUNDS[idx] = BigDecimal.valueOf(m)

micrometer-core/src/test/java/io/micrometer/core/instrument/distribution/FixedBoundaryVictoriaMetricsHistogramTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@
1515
*/
1616
package io.micrometer.core.instrument.distribution;
1717

18+
import io.micrometer.core.Issue;
1819
import org.junit.jupiter.api.Test;
1920

21+
import java.util.Locale;
22+
2023
import static org.assertj.core.api.Assertions.assertThat;
2124

2225
class FixedBoundaryVictoriaMetricsHistogramTest {
@@ -31,4 +34,23 @@ void checkUpperBoundLookup() {
3134
}
3235
}
3336

37+
@Test
38+
@Issue("#3676")
39+
void localeDoesNotChangeOutput() {
40+
Locale defaultLocale = Locale.getDefault();
41+
try {
42+
// set a Locale that uses a comma for the decimal separator
43+
Locale.setDefault(Locale.FRANCE);
44+
try (FixedBoundaryVictoriaMetricsHistogram histogram = new FixedBoundaryVictoriaMetricsHistogram()) {
45+
assertThat(histogram.getRangeTagValue(0.0d)).isEqualTo("0...0");
46+
assertThat(histogram.getRangeTagValue(1e-9d)).isEqualTo("0...1.0e-9");
47+
assertThat(histogram.getRangeTagValue(Double.POSITIVE_INFINITY)).isEqualTo("1.0e18...+Inf");
48+
assertThat(histogram.getRangeTagValue(1e18d)).isEqualTo("9.5e17...1.0e18");
49+
}
50+
}
51+
finally {
52+
Locale.setDefault(defaultLocale);
53+
}
54+
}
55+
3456
}

0 commit comments

Comments
 (0)