Revisit - Brackets in property key causes NumberFormatException
---------------------------------------------------------------
Key: CONFIGURATION-404
URL: https://issues.apache.org/jira/browse/CONFIGURATION-404
Project: Commons Configuration
Issue Type: Bug
Affects Versions: 1.5
Reporter: Rob Walker
Assignee: Oliver Heger
Fix For: 1.6
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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.