You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Emmanuel Bourg (JIRA)" <ji...@apache.org> on 2007/04/26 00:22:16 UTC

[jira] Updated: (CONFIGURATION-89) [configuration] Setting the reloading strategy to FileChangedReloadingStrategy erases entire configuration

     [ https://issues.apache.org/jira/browse/CONFIGURATION-89?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Bourg updated CONFIGURATION-89:
----------------------------------------

    Fix Version/s: 1.2

> [configuration] Setting the reloading strategy to FileChangedReloadingStrategy erases entire configuration
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: CONFIGURATION-89
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-89
>             Project: Commons Configuration
>          Issue Type: Bug
>    Affects Versions: 1.1
>         Environment: Operating System: Windows XP
> Platform: PC
>            Reporter: Blaine R Southam
>            Priority: Critical
>             Fix For: 1.2
>
>         Attachments: AbstractFileConfiguration.diff, TestFileConfiguration.diff
>
>
> When setting a PropertiesConfiguration reloading strategy to
> FileChangedReloadingStrategy - the entire configuration is erased.
> The problem is that when the FileChangedReloadingStrategy is set, the
> configuration file is erased and then reloaded and then written out.
> The file is erased in AbstractFileConfiguration.save(File) when a new
> FileOutputStream is created.  Then in the PropertiesConfiguration.save(Writer)
> the call to getKeys() causes a reaload() to occur (which the strategy says needs
> to be reloaded because it has been modified).  But the saved config file is now
> zeroed out by the new file stream, and it is read in as an empty config.
> Here is a testcase that exposed this defect:
>     public void
> testPropertiesConfigurationWithFileChangedReloadingStrategyDefect() throws
> ConfigurationException, FileNotFoundException, IOException {
>         FileWriter file = new FileWriter("testfile.properties");
>         file.write("a=1");
>         file.close();
>         FileConfiguration config = new
> PropertiesConfiguration("testfile.properties");
>         config.setAutoSave(true);
>         config.setReloadingStrategy(new FileChangedReloadingStrategy());
>         assertEquals("1", config.getString("a"));
>         config.setProperty("2", "b");
>         assertEquals("1", config.getString("a"));                        
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org