Issue Details (XML | Word | Printable)

Key: CONFIGURATION-336
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Oliver Heger
Reporter: Pavel Savara
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Commons Configuration

Brackets in property key causes NumberFormatException

Created: 29/Sep/08 07:49 AM   Updated: 22/Aug/09 07:36 PM
Return to search
Component/s: None
Affects Version/s: 1.5
Fix Version/s: 1.6

Time Tracking:
Not Specified

Resolution Date: 04/Nov/08 09:19 PM


 Description  « Hide
Hi,
When using brackets in property key we get an exception every time.
Escaping brackets with \ doesn't help.

Example
#property in property file
test(ef)=false

causes
java.lang.NumberFormatException: For input string: "ef" at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at org.apache.commons.configuration.tree.DefaultConfigurationKey
$KeyIterator.checkIndex(DefaultConfigurationKey.java:834)
at org.apache.commons.configuration.tree.DefaultConfigurationKey
$KeyIterator.nextKey(DefaultConfigurationKey.java:511) at
org.apache.commons.configuration.tree.DefaultExpressionEngine.findNodesForKey(DefaultExpressionEngine.java:462) at
org.apache.commons.configuration.tree.DefaultExpressionEngine.query(DefaultExpressionEngine.java:286) at
org.apache.commons.configuration.HierarchicalConfiguration.fetchNodeList(HierarchicalConfiguration.java:925 at
org.apache.commons.configuration.HierarchicalConfiguration.setProperty(HierarchicalConfiguration.java:735) at
org.apache.commons.configuration.ConfigurationUtils.copy(ConfigurationUtils.java:143) at
org.apache.commons.configuration.ConfigurationUtils.convertToHierarchical(ConfigurationUtils.java:199) at org.apache.commons.configuration.CombinedConfiguration
$ConfigData.getTransformedRoot(CombinedConfiguration.java:794) at
org.apache.commons.configuration.CombinedConfiguration.constructCombinedNode(CombinedConfiguration.java:653) at
org.apache.commons.configuration.CombinedConfiguration.getRootNode(CombinedConfiguration.java:504) at
org.apache.commons.configuration.HierarchicalConfiguration.fetchNodeList(HierarchicalConfiguration.java:925) at
org.apache.commons.configuration.HierarchicalConfiguration.getProperty(HierarchicalConfiguration.java:327) at
org.apache.commons.configuration.CombinedConfiguration.getProperty(CombinedConfiguration.java:578) at
org.apache.commons.configuration.AbstractConfiguration.resolveContainerStore(AbstractConfiguration.java:1155) at
org.apache.commons.configuration.AbstractConfiguration.getString(AbstractConfiguration.java:1034) at
org.apache.commons.configuration.AbstractConfiguration.getString(AbstractConfiguration.java:1017)

Explanation i got in mailing list from Oliver Heger

I guess you use DefaultConfigurationBuilder for loading a combined
configuration?

The exception is due to the fact that brackets have a special meaning in
the query syntax for hierarchical configurations.
(DefaultConfigurationBuilder transforms all configuration sources into
hierarchical configurations, so also for properties, which are not
hierarchical by default, the same rules apply.)

So far escaping brackets or other specific characters in property keys
is not supported. It seems to be rather unusual to use brackets in
property keys, so you may well be the first one who noticed this problem.

Unfortunately I don't have a working solution for this problem right
now.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.