[
https://issues.apache.org/jira/browse/CONFIGURATION-684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16302507#comment-16302507
]
Oliver Heger commented on CONFIGURATION-684:
--------------------------------------------
[~kinow], maybe I have not fully understood this ticket. I think the report is
only that the getKeys() method returns keys that are different from the
original keys if the configuration contains keys with dots. But this is the
normal behavior for all hierarchical configurations. Or do I miss something?
So my proposed fix would be to add a note to the Javadocs of getKeys().
> YAMLConfiguration keys with double dots
> ---------------------------------------
>
> Key: CONFIGURATION-684
> URL: https://issues.apache.org/jira/browse/CONFIGURATION-684
> Project: Commons Configuration
> Issue Type: Bug
> Reporter: Fabien Renaud
>
> h2. Issue
> Loading a YAML configuration with dotted keys causes dots to be duplicated in
> the keys of the YAMLConfiguration object.
> h2. Repro
> 100% repro:
> file.yml:
> {code}some.key.with.dots: 123{code}
> {code}
> package foo;
> import org.apache.commons.configuration2.YAMLConfiguration;
> import
> org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
> import org.apache.commons.configuration2.builder.fluent.Parameters;
> import org.apache.commons.configuration2.ex.ConfigurationException;
> public class App {
> public static void main(String[] args) throws ConfigurationException {
> Parameters params = new Parameters();
> FileBasedConfigurationBuilder<YAMLConfiguration> builder1 =
> new FileBasedConfigurationBuilder<>(YAMLConfiguration.class)
>
> .configure(params.fileBased().setFileName("file.yml"));
>
> YAMLConfiguration conf = builder1.getConfiguration();
> conf.getKeys().forEachRemaining(System.out::println);
> System.out.println("---");
> YAMLConfiguration yaml = new YAMLConfiguration();
> yaml.read(new
> InputStreamReader(ClassLoader.getSystemResourceAsStream("file.yml")));
> yaml.getKeys().forEachRemaining(System.out::println);
> }
> }
> {code}
> prints
> {code}some..key..with..dots
> ---
> some..key..with..dots
> {code}
> That is a serious bug for a configuration system. The issue may easily go
> untested for some keys and only reveal itself on production.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)