Nothing much more to add to Jason's reply as I am sick-like-dog and
don't want to read code :)

But I assume this takes into account small fix I did friday-ish?

geir


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

-- 
Geir Magnusson Jr.                               [EMAIL PROTECTED]
Velocity : it's not just a good idea. It should be the law.
http://jakarta.apache.org/velocity

Reply via email to