Uploaded image for project: 'Commons Configuration'
  1. Commons Configuration
  2. CONFIGURATION-336

Brackets in property key causes NumberFormatException

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.5
    • 1.6
    • None
    • None

    Description

      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.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            oheger Oliver Heger
            palko Pavel Savara
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment