[jira] [Work logged] (CONFIGURATION-753) Handling of interpolation is inconsistent

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Work logged] (CONFIGURATION-753) Handling of interpolation is inconsistent

ASF GitHub Bot (Jira)

     [ https://issues.apache.org/jira/browse/CONFIGURATION-753?focusedWorklogId=300346&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-300346 ]

ASF GitHub Bot logged work on CONFIGURATION-753:

                Author: ASF GitHub Bot
            Created on: 23/Aug/19 15:57
            Start Date: 23/Aug/19 15:57
    Worklog Time Spent: 10m
      Work Description: tpoliaw commented on pull request #32: [CONFIGURATION-753] Use only first value for interpolation
URL: https://github.com/apache/commons-configuration/pull/32
   When a property has multiple values, interpolation of that property in
   the middle of another property should use the same value as that
   returned by the getString method and not include all values.
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[hidden email]

Issue Time Tracking

            Worklog Id:     (was: 300346)
    Remaining Estimate: 0h
            Time Spent: 10m

> Handling of interpolation is inconsistent
> -----------------------------------------
>                 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
>            Priority: Major
>         Attachments: test.properties
>          Time Spent: 10m
>  Remaining Estimate: 0h
> If a key is repeated in a configuration and then used in an interpolation elsewhere, 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:java|title=/tmp/test.properties}
> abc = hello
> abc = world
> foo.one = ${abc}
> foo.two = prefix ${abc} suffix
> {code}
> {code:java|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