[ 
https://issues.apache.org/jira/browse/CONFIGURATION-418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13696384#comment-13696384
 ] 

Oliver Heger commented on CONFIGURATION-418:
--------------------------------------------

As an update: Currently, there is ongoing work on version 2.0 of Commons 
Configuration which will introduce some new concepts and break backwards 
compatibility. For this new release I am going to try out the approach with a 
{{ListDelimiterHandler}} interface. The plan is to drop the properties 
{{listDelimiter}} and {{delimiterParsingDisabled}} from 
{{AbstractConfiguration}} and move all logic related to list delimiter handling 
to a concrete {{ListDelimiterHandler}} implementation which can be assigned to 
the configuration.

We can provide different implementations of {{ListDelimiterHandler}}:
* one which disables list splitting completely; this would correspond to 
setting {{delimiterParsingDisabled}} to *true*.
* one which implements the same splitting logic as was used in Configuration 
1.x; this can be used if compatibility with already existing configuration 
files is needed
* one which implements a more consistent split and escape behavior as described 
in this ticket; this is then the recommended implementation for new 
applications that want to use list splitting

These implementations should cover the most typical use cases. If special 
behavior is needed, a custom {{ListDelimiterHandler}} implementation can be 
created.
                
> incorrect backslash parsing
> ---------------------------
>
>                 Key: CONFIGURATION-418
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-418
>             Project: Commons Configuration
>          Issue Type: Bug
>    Affects Versions: 1.6
>         Environment: Commons Configuration 1.6
>            Reporter: Ricky Martin
>            Priority: Minor
>             Fix For: 2.0
>
>         Attachments: Main.java, PropertyConverter.diff, sample.properties
>
>
> I am using Commons Configuration (PropertiesConfiguration) and some of my 
> data are windows shares: \\share1 or \\share2. The problem is the parsing 
> return different things depending how the keys are defined. For example, 
> these keys
> share=\\\\share1
> share=\\\\share2
> are different than:
> share=\\\\share1, \\\\share2
> The first one returns two backslashes ("\\share1" and "\\share2") and the 
> second returns just one ("\share1" and "\share2"). I think the problem is in 
> PropertyConverter line 525, cos the backslash is hidden twice when multivalue 
> parsing is done:
> if (c != delimiter && c != LIST_ESC_CHAR) 
>                 {
>                     // no, also add escape character
>                     token.append(LIST_ESC_CHAR);
>                 }
> In my understanding the second condition produces this strange issue and it 
> should be like this:
> if (c != delimiter) 
>                 {
>                     // no, also add escape character
>                     token.append(LIST_ESC_CHAR);
>                 }
> Check that cos I can be missing something...
> TIA

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to