commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fabien Renaud (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CONFIGURATION-684) YAMLConfiguration keys with double dots
Date Fri, 22 Dec 2017 02:13:00 GMT

     [ https://issues.apache.org/jira/browse/CONFIGURATION-684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Fabien Renaud updated CONFIGURATION-684:
----------------------------------------
    Description: 
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.

  was:
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.printf("---");
        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.


> 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)

Mime
View raw message