commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Heger (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (CONFIGURATION-440) setProperty in XmlConfiguration escapes backslashes
Date Thu, 04 Aug 2011 20:15:28 GMT

     [ https://issues.apache.org/jira/browse/CONFIGURATION-440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Oliver Heger resolved CONFIGURATION-440.
----------------------------------------

       Resolution: Duplicate
    Fix Version/s: 1.7

Got nor more feedback, so I assume this is actually a duplicate of CONFIGURATION-428.

> setProperty in XmlConfiguration escapes backslashes
> ---------------------------------------------------
>
>                 Key: CONFIGURATION-440
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-440
>             Project: Commons Configuration
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 1.6
>         Environment: Windows 7
>            Reporter: B
>              Labels: build
>             Fix For: 1.7, 2.0
>
>
> When setPropery sets a new value that has backslashes (like path), backslashes are escaped.
When that value is loaded again, all backslashes are duplicated. 
> Following test keeps failing. Don't know if there is some kind of formatting.
> public class XmlConfigurationTest {
>     private static final String XML_CONFIGURATION_PATH = "resources/xml/config.xml";
>     private static final String PATH1 = "c:\\temp\\path\\file.txt";
>     private static final String PATH2 = "c:\\temp1\\path1\\file1.txt";
>     private static final String PATH3 = "c:\\temp2\\path2\\file2.txt";
>     @Test
>     public void testXmlConfiguration() throws IOException {
> 	File resourceFile = null;
> 	try {
> 	    assertNotNull(_bundleContext);
> 	    resourceFile = new File(SystemUtils.getTargetDirectory(),
> 		    XML_CONFIGURATION_PATH);
> 	    assertTrue(resourceFile.getParentFile().mkdirs());
> 	    String value = null;
> 	    XMLConfiguration configuration = new XMLConfiguration();
> 	    configuration.setExpressionEngine(new XPathExpressionEngine());
> 	    configuration.setDelimiterParsingDisabled(true);
> 	    configuration.addProperty(" key1", PATH1);
> 	    configuration.setProperty(" key2", PATH2);
> 	    configuration.save(resourceFile);
>             /* All values are saved with non escaped backslashes */
> 	    value = configuration.getString("key1");
> 	    assertEquals(value, PATH1);
> 	    value = configuration.getString("key2");
> 	    assertEquals(value, PATH2);
> 	    /*
> 	     * Set again same property with different value. Setting property
> 	     * with this configuration will escape backslashes. Even though
> 	     * assert will pass, path with escaped backslashes will be written
> 	     * in a file (don't know if it is setProperty or save that is causing troubles).
> 	     */
> 	    configuration.setProperty(" key2", PATH3);
> 	    configuration.save(resourceFile);
> 	    value = configuration.getString("key2");
> 	    assertEquals(value, PATH3);
> 	    /*
> 	     * Create new configuration and load values from previously saved
> 	     * file.
> 	     */
> 	    XMLConfiguration newConfiguration = new XMLConfiguration();
> 	    newConfiguration.setExpressionEngine(new XPathExpressionEngine());
> 	    newConfiguration.setDelimiterParsingDisabled(true);
> 	    newConfiguration.load(resourceFile);
> 	    /*
> 	     * At this point, configuration will load escaped backslashes, and
> 	     * the test will fail.
> 	     */
> 	    value = newConfiguration.getString("key2");
> 	    assertEquals(value, PATH3);
> 	} catch (Throwable e) {
> 	    e.printStackTrace();
> 	    fail(e.getLocalizedMessage());
> 	} finally {
> 	    /*
> 	     * Delete resource file
> 	     */
> 	    resourceFile.delete();
> 	}
>     }
> }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message