[ 
https://issues.apache.org/jira/browse/CONFIGURATION-366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12675987#action_12675987
 ] 

Oliver Heger commented on CONFIGURATION-366:
--------------------------------------------

Well, yes. The idea behind that is that there should be a way to query empty 
elements. Per default all XML elements are listed by {{getKeys()}} that have 
text content. This would exclude empty elements like the {{<XPaths>}} element 
in your example. Nevertheless these elements exist in the XML document, and 
there may be use cases where the sole presence of an element has a certain 
meaning. To address those use cases it was decided that empty elements should 
be treated as regular keys with an empty string as value (this was in one of 
the first versions of this library).

Due to a bug in the {{getKeys()}} method (CONFIGURATION-321) the prefix passed 
to this method was never included in the iteration. That was fixed in 
Configuration 1.6, and that's why you now have an additional key in the 
iteration.

I admit that in your specific case the behavior may seem a bit strange due to 
an unlucky combination of the bug fix in CONFIGURATION-321 and the treatment of 
empty elements. I am not sure how this could be made more consistent. Also, I 
am reluctant to changing this behavior because of backwards compatibility.

> XMLConfiguration.getKeys() broken
> ---------------------------------
>
>                 Key: CONFIGURATION-366
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-366
>             Project: Commons Configuration
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 1.6
>         Environment: Java 6
>            Reporter: Christian Uldall Pedersen
>         Attachments: Config_1.xml, Config_2.xml, ConfigTest.java
>
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> XMLConfiguration.getKeys(String prefix) returns iterator with the string 
> argument "prefix", when the xpath specified has no sub elements. The 
> XPathExpressionEngine has been used as Expression engine.
> Version 1.3 does not have this problem. Here an empty Iterator is returned.
> This seems related to:
> http://issues.apache.org/jira/browse/CONFIGURATION-87

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