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] Commented: (CONFIGURATION-293) HierarchicalConfiguration.clearTree() does not remove named property
Date Thu, 23 Aug 2007 18:12:30 GMT

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

Oliver Heger commented on CONFIGURATION-293:
--------------------------------------------

As far as I understand it, clearTree() indeed removes a node from the combined configuration.
This affects the child configuration, from which this node was obtained. After that the combined
configuration has to be re-constructed. In this process the used override combiner will again
add a node that matches the just removed key - but this time it is obtained from the other
child configuration.

The only save way of implementing your clearTree() method would be to iterate over all child
configurations and to call clearTree() on them. Then you can be sure that all possible nodes
have been removed.

> HierarchicalConfiguration.clearTree() does not remove named property
> --------------------------------------------------------------------
>
>                 Key: CONFIGURATION-293
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-293
>             Project: Commons Configuration
>          Issue Type: Bug
>    Affects Versions: 1.4
>            Reporter: Wesley Miaw
>         Attachments: bug-config.xml, bug-override.xml, bug-test.properties
>
>
> HierarchicalConfiguration.clearTree(String) calls HierarchicalConfiguration.removeNode(ConfigurationNode)
which removes nothing if the passed in ConfigurationNode has no parent. Having no parent is
true of nodes that have the root for their parent (it seems to me) as well as for nodes that
have no properties defined "above" them. Here is an example:
> config.addProperty("a.b.c", "c");
> config.addProperty("a.b.c.d", "d");
> config.addProperty("a.b.c.d.e", "e");
> The following sequence of calls will fail:
> config.clearTree("a.b.c");
> assert config.containsKey("a.b.c") == false;
> The following sequence of calls will succeed:
> config.clearTree("a.b.c.d");
> assert config.containsKey("a.b.c.d") == false;
> assert config.containsKey("a.b.c.d.e") == false;

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


Mime
View raw message