commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pino Navato (JIRA)" <>
Subject [jira] Created: (CONFIGURATION-302) FileChangedReloadingStrategy.reloadingRequired() can fail
Date Fri, 14 Dec 2007 12:38:43 GMT
FileChangedReloadingStrategy.reloadingRequired() can fail

                 Key: CONFIGURATION-302
             Project: Commons Configuration
          Issue Type: Bug
    Affects Versions: 1.5
            Reporter: Pino Navato
            Priority: Minor

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.

View raw message