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

Oliver Heger updated CONFIGURATION-302:
---------------------------------------

    Fix Version/s: 1.6
         Assignee: Oliver Heger

> FileChangedReloadingStrategy.reloadingRequired() can fail
> ---------------------------------------------------------
>
>                 Key: CONFIGURATION-302
>                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-302
>             Project: Commons Configuration
>          Issue Type: Bug
>    Affects Versions: 1.5
>            Reporter: Pino Navato
>            Assignee: Oliver Heger
>            Priority: Minor
>             Fix For: 1.6
>
>
> If reloadingRequired() returns true and you call it again before calling 
> reloadingPerformed(), the 2nd time it can return false (but you have not yet 
> reloaded!) because it doesn't check the file system again until the refresh 
> delay is expired.
> Of course this is a very unusual test case (usually you reload immediately) 
> but the behaviour of the method should be consistent in this case too: if 
> reloadingRequired() returns true any subsequent call to this method should 
> return true until reloadingPerformed() is called.
> In my project I have fixed the method by promoting the flag called 
> "reloading" to class scope so I that can check whether the previous call 
> returned true or false:
> protected boolean reloading = false;
> public boolean reloadingRequired()
> {
>       if (!reloading)
>       {
>               long now = System.currentTimeMillis();
>               if (now > lastChecked + refreshDelay)
>               {
>                       lastChecked = now;
>                       if (hasChanged())
>                       {
>                               reloading = true;
>                       }
>               }
>       }
>       return reloading;
> }
> Of course I reset this flag in init() and reloadingPerformed().

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

Reply via email to