commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rob Walker (JIRA)" <j...@apache.org>
Subject [jira] Created: (CONFIGURATION-404) Revisit - Brackets in property key causes NumberFormatException
Date Fri, 15 Jan 2010 05:14:54 GMT
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.


Mime
View raw message