Thanks, noted. I won't get to this for a while so if
you like:
1. fix it
2. test it
3. send the patches please
:-)
jvz.
On Mon, 19 Feb 2001, Paulo Gaspar wrote:
> Here I go again...
>
>
> The is a waste of performance and a bug on resource loading
> in the ResourceManager class.
>
> * The Bug *
>
> In ResourceManager.getResource(), loading a resource with
> resource.process();
> always happens before reading its "LastModified" timestamp
> with
> resource.setLastModified(resourceLoader.getLastModified(resource));
>
> The bug is that this can cause a change to become undetected
> if one has this sequence of events:
> 1 - resource is loaded;
> 2 - resource is changed at its source (file or other);
> 3 - timestamp is red.
>
> In 3, this would be the timestamp of the new version instead
> of the old. Further timestamp checks would not detect the
> change because the timestamp red does NOT belong to the
> resource red.
>
>
> * The performance waste *
>
> Besides consistency advantages, it is usually faster to read
> the resource's text and its timestamp in a single operation.
> This is especially obvious with database resource loaders
> like David's (2 database operations instead of one in order
> to load a template).
>
> However, the current ResourceManager/ResourceLoader
> mechanism does not allow that.
>
>
> Have fun,
> Paulo Gaspar
>
>