Uploaded image for project: 'Commons Configuration'
  1. Commons Configuration
  2. CONFIGURATION-374

Unexpected trimming of values in MapConfiguration

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.6
    • Fix Version/s: 1.7
    • Component/s: None
    • Labels:
      None
    • Environment:

      N/A

      Description

      When using a MapConfiguration (typically over a Properties object), all spaces surrounding a value are trimmed during the array conversion MapConfiguration.getProperty calling PropertyConverter.split(String, char) -> PropertyConverter.split(String, char, true).

      I can understand the rational behind this, but:

      1/ It can be misleading because it is not documented in the API.
      It's even more surprising, since it's a behavior of getting an array, but which has side effect on getting a string.
      In other words: enabling/disabling delimiter parsing also enables/disables trimming of values (even if not an array).
      This is illustrated by the tests "getStringWithSpacesTrimmed" and "getStringWithSpacesNotTrimmed" in the attached test file

      a) The exact behavior should be documented at the proper place in the JavaDoc

      2/ It should be possible:
      b) either to disable the automatic trimming (something similar to setDelimiterParsingDisabled(boolean), e.g. setTrimmingDisabled(boolean), and in this case it should be possible to enable/disable it independently from the delimiter parsing;
      c) or to escape the spaces (see tests "getStringArrayWithSpacesEscaped" and "getStringWithSpacesEscaped"), this would be consistent with the parsing of the delimiter itself.

      Ideally all of a), b) and c) should be implemented.

        Attachments

        1. TrimTest.java
          3 kB
          Arnauld Van Muysewinkel

          Activity

            People

            • Assignee:
              oheger Oliver Heger
              Reporter:
              arnauldvm Arnauld Van Muysewinkel
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: