[ https://issues.apache.org/jira/browse/CONFIGURATION-452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oliver Heger resolved CONFIGURATION-452. ---------------------------------------- Resolution: Fixed Fix Version/s: 1.7 Marking this issue as fixed because the reported problem should be solved. Feel free to reopen - or create a new issue - if you encounter further problems. > HierarchicalConfiguration with XPathExpressionEngine does not work when > setting a new property > ---------------------------------------------------------------------------------------------- > > Key: CONFIGURATION-452 > URL: https://issues.apache.org/jira/browse/CONFIGURATION-452 > Project: Commons Configuration > Issue Type: Bug > Components: Expression engine > Affects Versions: 1.6 > Environment: all > Reporter: Fabien Nisol > Assignee: Oliver Heger > Fix For: 1.7 > > > The following code does not work as expected > {code:title=Bug.java|borderStyle=solid} > public class Bug { > public static void main(String[] args) { > try { > XMLConfiguration config = new XMLConfiguration(); > // works > config.setProperty("test.property[@attribute]", > "value"); > config.setExpressionEngine(new XPathExpressionEngine()); > config.save(System.out); > // works > config.setProperty("test/property/@attribute", "value"); > // does not work > config.setProperty("test/property/@attribute2", > "value"); > } catch (ConfigurationException e) { > // @FIXME Traitement d'exception par defaut > throw new RuntimeException(e); > } > } > } > {code} > hangs with the following exception: > Exception in thread "main" java.lang.IllegalArgumentException: prepareAdd: > Passed in key must contain a whitespace! > at > org.apache.commons.configuration.tree.xpath.XPathExpressionEngine.prepareAdd(XPathExpressionEngine.java:223) > at > org.apache.commons.configuration.HierarchicalConfiguration.addPropertyDirect(HierarchicalConfiguration.java:371) > at > org.apache.commons.configuration.AbstractHierarchicalFileConfiguration.addPropertyDirect(AbstractHierarchicalFileConfiguration.java:140) > at > org.apache.commons.configuration.HierarchicalConfiguration.setProperty(HierarchicalConfiguration.java:749) > at > org.apache.commons.configuration.AbstractHierarchicalFileConfiguration.setProperty(AbstractHierarchicalFileConfiguration.java:158) > at Bug.main(Bug.java:29) > the setProperty() method does not work if the property have to be added. This > behavior is not really wanted, because in some generic cases, we don't know > if the property is set or not before trying to set it. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira