Unexpected trimming of values in MapConfiguration
-------------------------------------------------
Key: CONFIGURATION-374
URL: https://issues.apache.org/jira/browse/CONFIGURATION-374
Project: Commons Configuration
Issue Type: Improvement
Affects Versions: 1.6
Environment: N/A
Reporter: AVM
Attachments: TrimTest.java
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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.