You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Ho-jin Lee (JIRA)" <ji...@apache.org> on 2014/10/04 13:11:34 UTC

[jira] [Commented] (CONFIGURATION-427) XMLPropertyListConfiguration cannot save arrays in the correct plist form

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

Ho-jin Lee commented on CONFIGURATION-427:
------------------------------------------

Oliver Heger!
I think the addProperty and setProperty method in the XMLPropertyListConfiguration class is wrong.
They regard 'List' class as a list of inputs not array.

Original source :
    @Override
    public void addProperty(String key, Object value)
    {
        if (value instanceof byte[])
        {
            fireEvent(EVENT_ADD_PROPERTY, key, value, true);
            addPropertyDirect(key, value);
            fireEvent(EVENT_ADD_PROPERTY, key, value, false);
        }
        else
        {
            super.addProperty(key, value);
        }
    }

Expected source(My opinion) :
   @Override
    public void addProperty(String key, Object value)
    {
        if (value instanceof byte[] || value instanceof List)
        {
            fireEvent(EVENT_ADD_PROPERTY, key, value, true);
            addPropertyDirect(key, value);
            fireEvent(EVENT_ADD_PROPERTY, key, value, false);
        }
        else
        {
            super.addProperty(key, value);
        }
    }



> XMLPropertyListConfiguration cannot save arrays in the correct plist form
> -------------------------------------------------------------------------
>
>                 Key: CONFIGURATION-427
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-427
>             Project: Commons Configuration
>          Issue Type: Bug
>          Components: Format
>    Affects Versions: 1.6
>         Environment: should show up in any environment, as the test cases are disabled for arrays and maps:
> http://commons.apache.org/configuration/xref-test/org/apache/commons/configuration/plist/TestXMLPropertyListConfiguration.html#199
> I was testing 1.6 using groovy console under Mac OS X 10.6
>            Reporter: matthew smith
>            Assignee: Emmanuel Bourg
>            Priority: Minor
>         Attachments: configuration-427.patch
>
>
> {code:java}
> groovy> import org.apache.commons.configuration.plist.* 
> groovy> def config = new XMLPropertyListConfiguration() 
> groovy> config.addProperty("things", ['chair', 'hat', 'door'])  
> groovy> config.save(System.out) 
> {code}
> results in
>  
> {code:xml}
> <?xml version="1.0"?>
> <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
> <plist version="1.0">
>     <dict>
>         <key>things</key>
>         <string>chair</string>
>         <key>things</key>
>         <string>hat</string>
>         <key>things</key>
>         <string>door</string>
>     </dict>
> </plist>
> {code}
> expecting
> {code:xml}
> <?xml version="1.0"?>
> <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
> <plist version="1.0">
>     <dict>
>         <key>things</key>
>         <array>
>           <string>chair</string>
>           <string>hat</string>
>           <string>door</string>
>       </array>
>     </dict>
> </plist>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)