commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michal Polak (JIRA)" <>
Subject [jira] Created: (CONFIGURATION-256) MapConfiguration does not decode escaped Delimiters
Date Mon, 05 Mar 2007 13:03:51 GMT
MapConfiguration does not decode escaped Delimiters

                 Key: CONFIGURATION-256
             Project: Commons Configuration
          Issue Type: Bug
    Affects Versions: 1.3
         Environment: I think it does not matter because of pure java
            Reporter: Michal Polak

Hello, I don't know how to reopen resolved bug. See:

There is BAD implementation in MapConfiguration.getProperty(String key) method:

As "return value" should be list.get(0) instead of "value".
PropertyConverter.split removes escape chars....

Suggested correction:

    public Object getProperty(String key)
        Object value = map.get(key);
        if ((value instanceof String) && (!isDelimiterParsingDisabled()))
            List list = PropertyConverter.split((String) value, getListDelimiter());
            //MP: return list.size() > 1 ? list : value;
            return list.size() > 1 ? list : list.get(0); //MP: split removes escape chars
            return value;

Test code:

Map m = new HashMap();
m.put("foo", "bar\\,baz");
m.put("bar", "bar, baz");
MapConfiguration mc = new MapConfiguration(m);
Configuration c = mc;
String bad = c.getString("foo"); //<-- returns "bar\\, baz" expected "bar, baz"
String ok = c.getString("bar"); // <-- returns "bar"
System.err.println("Bad: " + bad);
System.err.println("OK: " + ok);

Current result is:

Bad: bar\,baz
OK: bar

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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message