commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oliver Heger (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CONFIGURATION-368) CombinedConfiguration: java.util.NoSuchElementException after reload of enclosed SubnodeConfiguration/XMLConfiguration
Date Sun, 08 Mar 2009 18:59:56 GMT

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

Oliver Heger commented on CONFIGURATION-368:
--------------------------------------------

The problem is the following: Though the SubnodeConfiguration detects that its parent configuration
was changed and it updates itself, it does not fire any change event. Thus the hosting CombinedConfiguration
does not recognize that there are any changes; querying the CombinedConfiguration returns
stale data.

A fix is to sent a change event whenever the SubnodeConfiguration detects a change of its
parent.

To get the test case pass I also had to slightly modify the node construction process of CombinedConfiguration:
In the tests {{FileAlwaysReloadingStrategy}} is used as reloading strategy, which triggers
a reload on every property access. Obviously it is problematic if multiple reloads occur while
the node structure of a single child configuration of the CombinedConfiguration is constructed.
The new code makes sure that {{getRootNode()}} on the child configuration is called only once.

> CombinedConfiguration: java.util.NoSuchElementException after reload of enclosed SubnodeConfiguration/XMLConfiguration
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: CONFIGURATION-368
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-368
>             Project: Commons Configuration
>          Issue Type: Bug
>          Components: File reloading
>    Affects Versions: 1.6
>            Reporter: Paul Meyer
>            Assignee: Oliver Heger
>         Attachments: TestCombinedConfigurationReload.java
>
>
> Steps to repeat:
> - create a XMLConfiguration based on a XML config file (xml file content e.g.:  <config><foo><bar>0</bar></for></config>)
> - assign file reloading strategy to the XMLConfiguration
> - create a SubnodeConfiguration based on this XMLConfiguration (prefix e.g.: 'foor')
> - create a CombinedConfiguration
> - add the SubnodeConfiguration to this CombinedConfiguration
> - get a configuration value from the CombinedConfiguration (e.g. 'bar') -> OK, this
works
> - touch the underlying xml configuration
> - try to get a configuration value from the CombinedConfiguration again (e.g. 'bar')
->  java.util.NoSuchElementException
> See also attached TestCase.

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