[ 
https://issues.apache.org/jira/browse/CONFIGURATION-684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16305708#comment-16305708
 ] 

Fabien Renaud commented on CONFIGURATION-684:
---------------------------------------------

I understand why the escaping is done. I wish the default engine wasn't doing 
such escaping as I find this unnecessarily confusing when starting to use the 
lib (and I don't want to write my own engine nor configure one). Logging a 
warning or throwing an exception would have been just as fine imo.
Closing this ticket.

> 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
>              Labels: discussion, help-wanted
>
> 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)

Reply via email to