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

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

If nothing gets removed, this is probably because you have hit one of the 
"link" nodes that have been added by the NodeCombiner. Those nodes may indeed 
have no parent.

Your statements about inheritance do make sense. OTOH a CombinedConfiguration 
acts like a logic view on an arbitrary number of child configurations. And this 
view is constructed by a pluggable strategy, a NodeCombiner. In this scenario I 
simply see no way of implementing all the operations defined in 
HierarchicalConfiguration in a generic way that is compatible with each 
possible NodeCombiner. Hence the warning in the user guide about updates of a 
combined configuration. Maybe this fact should be made more obvious in the 
class's documentation?

> 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.

Reply via email to