diff --git a/flink-metrics/flink-metrics-core/src/main/java/org/apache/flink/metrics/MetricConfig.java b/flink-metrics/flink-metrics-core/src/main/java/org/apache/flink/metrics/MetricConfig.java index b9fcafb5f2d8a..5d2ca6f83a111 100644 --- a/flink-metrics/flink-metrics-core/src/main/java/org/apache/flink/metrics/MetricConfig.java +++ b/flink-metrics/flink-metrics-core/src/main/java/org/apache/flink/metrics/MetricConfig.java @@ -34,7 +34,11 @@ public class MetricConfig extends Properties { public String getString(String key, String defaultValue) { - return getProperty(key, defaultValue); + final Object value = get(key); + if (value == null) { + return defaultValue; + } + return value.toString(); } /** diff --git a/flink-metrics/flink-metrics-core/src/test/java/org/apache/flink/metrics/MetricConfigTest.java b/flink-metrics/flink-metrics-core/src/test/java/org/apache/flink/metrics/MetricConfigTest.java index d3be33d966383..2824328c6a5cd 100644 --- a/flink-metrics/flink-metrics-core/src/test/java/org/apache/flink/metrics/MetricConfigTest.java +++ b/flink-metrics/flink-metrics-core/src/test/java/org/apache/flink/metrics/MetricConfigTest.java @@ -90,7 +90,14 @@ private static Stream nativeTypeCases() { 123456789012345L), Arguments.of(3.14f, (TypedGetter) (c, k) -> c.getFloat(k, 0.0f), 3.14f), Arguments.of(2.718281828, (TypedGetter) (c, k) -> c.getDouble(k, 0.0), 2.718281828), - Arguments.of(true, (TypedGetter) (c, k) -> c.getBoolean(k, false), true)); + Arguments.of(true, (TypedGetter) (c, k) -> c.getBoolean(k, false), true), + Arguments.of(42, (TypedGetter) (c, k) -> c.getString(k, "default"), "42"), + Arguments.of( + 123456789012345L, + (TypedGetter) (c, k) -> c.getString(k, "default"), + "123456789012345"), + Arguments.of(3.14f, (TypedGetter) (c, k) -> c.getString(k, "default"), "3.14"), + Arguments.of(true, (TypedGetter) (c, k) -> c.getString(k, "default"), "true")); } private static Stream crossTypeCases() {