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

Unexpected trimming of values in MapConfiguration

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.6
    • 1.7
    • None
    • None
    • 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

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

            Dates

              Created:
              Updated:
              Resolved: