commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Heger (JIRA)" <>
Subject [jira] Commented: (CONFIGURATION-411) XMLConfiguration: node text: first \ (backslash) of \\ (double backslash) character will not be in the configuration
Date Sun, 14 Mar 2010 15:05:27 GMT


Oliver Heger commented on CONFIGURATION-411:

The handling of the backslash character is part of the list splitting mechanism: per default,
properties containing the list delimiter character (",") are split and treated as a list of
values. If the list delimiter character is part of the property value, it can be escaped using
a backslash, i.e. "\,". The backslash itself can be escaped by another backslash - this is
what you have hit.

You can work around the problem in the following ways:
* You can disable list delimiter parsing if you do not need it. This can be done by calling
the {{setDelimiterParsingDisabled()}} method *before* the configuration is loaded.
* You can double the backslash where it is required, so your property becomes {{\\\\test\test}}.

This list splitting feature which is enabled per default has caused us many problems in the
past. So we think about removing it in the next major release (of course in the commons-configuration
1.x series backwards compatibility will be kept).

Does this solve your problem? I do not think, this is really a bug.

> XMLConfiguration: node text: first \ (backslash) of \\ (double backslash) character will
not be in the configuration
> --------------------------------------------------------------------------------------------------------------------
>                 Key: CONFIGURATION-411
>                 URL:
>             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
> {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 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
> begin = 0
> c = "\"
> inEscape = true
> begin = 1
> c= "\"
> if (c \!= delimiter && c == LIST_ESC_CHAR) => only the second char will be

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

View raw message