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

Oliver Heger commented on CONFIGURATION-411:
--------------------------------------------

The escaping algorithm is implemented that it searches for backslash characters 
and then checks the following character. If this is a special character like 
the list delimiter or another backslash, the first backslash is dropped, and 
the following character is not touched. For other characters that do not have a 
special meaning the backslash is retained. This approach was used to minimize 
the impact of the escaping algorithm on existing property definitions. For 
instance, windows path names containing only single backslashes are not escaped.

Actually, in your case it does not make any difference whether you double the 
second backslash or not.

> XMLConfiguration: node text: first \ (backslash) of \\ (double backslash) 
> character will not be in the configuration
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: CONFIGURATION-411
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-411
>             Project: Commons Configuration
>          Issue Type: Bug
>    Affects Versions: 1.6
>            Reporter: Jochen Hebbrecht
>            Priority: Minor
>         Attachments: xmldoublebackslash.rar
>
>
> I have this configuration element in my XML configuration:
> {code}
> <working-folder>\\test\test</working-folder>
> {code}
> ... but when I want to print out the value, I notice the content of this node 
> changed to:
> {code} \test\test{code}
> So the first "\" has disappeared
> I've created a M2 project that simulates the problem. Just hit mvn 
> eclipse:eclipse and run the Test.java file :-).
> The problem is situated in: 
> *org.apache.commons.configuration.PropertyConverter.class*. Check the method:
> {code} public static List split(String s, char delimiter, boolean trim){code} 
> => line 505.
> begin = 0
> c = "\"
> inEscape = true
> begin = 1
> c= "\"
> if (c \!= delimiter && c == LIST_ESC_CHAR) => only the second char will be 
> printed

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to