commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wesley Miaw (JIRA)" <>
Subject [jira] Commented: (CONFIGURATION-293) HierarchicalConfiguration.clearTree() does not remove named property
Date Wed, 22 Aug 2007 19:48:31 GMT


Wesley Miaw commented on CONFIGURATION-293:

Yeah. I looked into removeNode() and the code makes sense. I just tried again and it works,
unless you have the following set up. I'll attach the bug-config.xml and the two files it
tries to load up as well. (This is a CombinedConfiguration; I can only make this happen with
the CombinedConfiguration, it works fine if either of the two files mentioned in bug-config.xml
loses its inner-most definition (i.e. bug-override.xml only has <a></a> or
is empty).

	final String prefix = "a.b.c";
	public void clearTree() throws ConfigurationException {
		final URL xml = this.getClass().getClassLoader().getResource("bug-config.xml");
		final DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder(xml);
		final CombinedConfiguration config = (CombinedConfiguration)builder.getConfiguration(true);
		config.addProperty(prefix, "c");
		config.addProperty(prefix + ".d", "d");
		config.addProperty(prefix + ".d.e", "e");
		assert !config.containsKey(prefix + ".d") : "Sub property not removed";
		assert !config.containsKey(prefix) : "Property not removed";

> HierarchicalConfiguration.clearTree() does not remove named property
> --------------------------------------------------------------------
>                 Key: CONFIGURATION-293
>                 URL:
>             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.

View raw message