Peter created CONFIGURATION-753:
-----------------------------------
Summary: Handling of interpolation is inconsistant
Key: CONFIGURATION-753
URL: https://issues.apache.org/jira/browse/CONFIGURATION-753
Project: Commons Configuration
Issue Type: Bug
Components: Interpolation
Affects Versions: 2.5
Environment: Java 8, Configurations2 2.5
Reporter: Peter
Attachments: test.properties
If a key is repeated in a configuration and then used in an interpolation else
where, the behaviour is inconsistent. There are other tickets/discussions about
whether it should just pick the first value or not, but I don't think it should
do both.
{code:title=/tmp/test.properties}
abc = hello
abc = world
foo.one = ${abc}
foo.two = prefix ${abc} suffix
{code}
{code:title=Demo.java (main)}
Parameters params = new Parameters();
FileBasedConfigurationBuilder<FileBasedConfiguration> builder = new
FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
.configure(params.fileBased()
.setFileName("/tmp/test.properties")
);
try {
FileBasedConfiguration config = builder.getConfiguration();
System.out.println(config.getString("foo.one"));
System.out.println(config.getString("foo.two"));
} catch (ConfigurationException cex) {
// pass
}
{code}
The output from the above is
{noformat}
hello
prefix [hello, world] suffix
{noformat}
In the first case, only the first value is being matched, in the second both
values (and [, ]) are used.
I'd expect the output to either be
{noformat:title=First value only}
hello
prefix hello suffix
{noformat}
or
{noformat:title=Both values used}
[hello, world]
prefix [hello, world] suffix
{noformat}
I can work around whichever style is chosen but think it'd be much more
intuitive if both cases were handled the same.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)