commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Heger <oliver.he...@oliver-heger.de>
Subject Re: [configuration] Problem with XMLConfiguration.setProperty(String, Object) and setDelimiterParsingDisabled
Date Wed, 25 Apr 2012 20:16:26 GMT
Am 22.04.2012 22:15, schrieb Oliver Heger:
> Thank you for reporting this. I agree with you that the output of the
> configuration should be independent on the value of the delimiter
> parsing flag.
>
> If you are convinced that this is an error, please open a ticket in our
> bug tracking system [1].
>
> I hope to find some time in the next days to have a look at this issue.

This is indeed a bug. It actually affects all Configuration implementations.

I opened the following bug report:
https://issues.apache.org/jira/browse/CONFIGURATION-495

Oliver

>
> Oliver
>
> [1] http://commons.apache.org/configuration/issue-tracking.html
>
> Am 22.04.2012 13:38, schrieb thc202@gmail.com:
>> Hi.
>>
>> Sorry for the code not properly indented (content of
>> DelimiterExample.java).
>>
>> Here it goes again:
>>
>> import java.util.ArrayList;
>> import java.util.Arrays;
>> import java.util.List;
>>
>> import org.apache.commons.configuration.ConfigurationException;
>> import org.apache.commons.configuration.XMLConfiguration;
>>
>> public class DelimiterExample
>> {
>> // Configuration file that will have the
>> // setDelimiterParsingDisabled as _false_.
>> private static final String CONF_DELIMITER_ENABLED_XML =
>> "ConfDelimiterEnabled.xml";
>>
>> // Configuration file that will have the
>> // setDelimiterParsingDisabled as_true_.
>> private static final String CONF_DELIMITER_DISABLED_XML =
>> "ConfDelimiterDisabled.xml";
>>
>> // Key of the data used in the configuration files.
>> private static final String LIST_ELEMENT_KEY = "list.element";
>>
>> public static void main(String[] args) throws ConfigurationException
>> {
>> // Data that will be saved in the configuration files.
>> List<String> data = new ArrayList<String>(3);
>> data.add("value 1");
>> data.add("value 2");
>> data.add("value 3");
>>
>>
>> // First using setDelimiterParsingDisabled as false.
>>
>> XMLConfiguration confDelimiterEnabledWrite =
>> new XMLConfiguration(CONF_DELIMITER_ENABLED_XML);
>>
>> confDelimiterEnabledWrite.setProperty(LIST_ELEMENT_KEY, data);
>> // Writes:
>> //<list>
>> //<element>value 1</element>
>> //<element>value 2</element>
>> //<element>value 3</element>
>> //</list>
>>
>> confDelimiterEnabledWrite.save();
>>
>> XMLConfiguration confDelimiterEnabledRead =
>> new XMLConfiguration(CONF_DELIMITER_ENABLED_XML);
>> String[] values =
>> confDelimiterEnabledRead.getStringArray(LIST_ELEMENT_KEY);
>>
>> // Doesn't output anything as they are equals. Expected behaviour.
>> if (!Arrays.equals(values, data.toArray()))
>> {
>> System.out.println(
>> "setDelimiterParsingDisabled(false): Data not equal!");
>> }
>>
>>
>> // Now using setDelimiterParsingDisabled as true.
>>
>> XMLConfiguration confDelimiterDisabledWrite = new XMLConfiguration();
>> confDelimiterDisabledWrite.setDelimiterParsingDisabled(true);
>> confDelimiterDisabledWrite.setFileName(CONF_DELIMITER_DISABLED_XML);
>> confDelimiterDisabledWrite.load();
>>
>> confDelimiterDisabledWrite.setProperty(LIST_ELEMENT_KEY, data);
>> // Writes:
>> //<list>
>> //<element>[value 1, value 2, value 3]</element>
>> //</list>
>>
>> // Unexpected behaviour!
>> // Shouldn't it write the same as with
>> // setDelimiterParsingDisabled as false? as it is a list.
>>
>> confDelimiterDisabledWrite.save();
>>
>> XMLConfiguration confDelimiterDisabledRead = new XMLConfiguration();
>> confDelimiterDisabledRead.setDelimiterParsingDisabled(true);
>> confDelimiterDisabledRead.setFileName(CONF_DELIMITER_DISABLED_XML);
>> confDelimiterDisabledRead.load();
>>
>> values = confDelimiterDisabledRead.getStringArray(LIST_ELEMENT_KEY);
>>
>> // As it writes other thing this will output that they are not equals.
>> if (!Arrays.equals(values, data.toArray()))
>> {
>> System.out.println(
>> "setDelimiterParsingDisabled(true): Data not equal!");
>> }
>> }
>>
>> }
>>
>>
>> Best regards.
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message