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

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

I tried to reproduce the problem, but without success. The following test case 
(which I have added to TestHierarchicalConfiguration) based on your description 
does not cause any problems (on the current SVN head):

    public void testClearTreeHierarchy()
    {
        config.addProperty("a.b.c", "c");
        config.addProperty("a.b.c.d", "d");
        config.addProperty("a.b.c.d.e", "e");
        config.clearTree("a.b.c");
        assertFalse("Property not removed", config.containsKey("a.b.c"));
        assertFalse("Sub property not removed", config.containsKey("a.b.c.d"));
    }

The code of removeNode() seems okay to me. It removes the affected node from 
its parent, which effectively causes the whole sub tree to be removed from the 
configuration.

Can you please double-check?

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