From f6942e8fba6bfd44ddb1e272c1a2143ba7a87963 Mon Sep 17 00:00:00 2001 From: Romain Grecourt Date: Mon, 28 Aug 2023 14:08:40 -0700 Subject: [PATCH] Update bug fix and test to work when there is a non empty prefix --- .../src/main/java/io/helidon/config/mp/SeConfig.java | 8 ++++++-- .../src/test/java/io/helidon/config/mp/MpConfigTest.java | 8 +++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/config/config-mp/src/main/java/io/helidon/config/mp/SeConfig.java b/config/config-mp/src/main/java/io/helidon/config/mp/SeConfig.java index d512bb8a9bb..3586a82399c 100644 --- a/config/config-mp/src/main/java/io/helidon/config/mp/SeConfig.java +++ b/config/config-mp/src/main/java/io/helidon/config/mp/SeConfig.java @@ -260,8 +260,12 @@ public ConfigValue> asMap() throws MissingValueException { continue; } if (propertyName.startsWith(stringKey + ".")) { - String noPrefix = propertyName.substring(stringPrefix.length()); - + String noPrefix; + if (stringPrefix.isEmpty()) { + noPrefix = propertyName; + } else { + noPrefix = propertyName.substring(stringPrefix.length() + 1); + } children.put(noPrefix, delegate.getValue(propertyName, String.class)); } } diff --git a/config/config-mp/src/test/java/io/helidon/config/mp/MpConfigTest.java b/config/config-mp/src/test/java/io/helidon/config/mp/MpConfigTest.java index d00e6d3c5e1..fd3917b7cde 100644 --- a/config/config-mp/src/test/java/io/helidon/config/mp/MpConfigTest.java +++ b/config/config-mp/src/test/java/io/helidon/config/mp/MpConfigTest.java @@ -188,8 +188,14 @@ public void testSeConfigAsMap() { "client.headers.0.name", "foo" ))) .build(); - Map map = MpConfig.toHelidonConfig(mpConfig).get("client").asMap().orElse(Map.of()); + io.helidon.config.Config seConfig = MpConfig.toHelidonConfig(mpConfig); + Map map; + + map = seConfig.get("client").asMap().orElse(Map.of()); assertThat(map.get("client.headers.0.name"), is("foo")); + + map = seConfig.get("client").detach().asMap().orElse(Map.of()); + assertThat(map.get("headers.0.name"), is("foo")); } // Github issue #2206