Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
5.0.9
-
None
-
Mac OSX, Tomcat-5.5.25
Description
I'm looking at upgrading from 5.0.6 to 5.0.9, after the upgrade I'm getting the old version of tapestry.js every time I load the page.
I tracked the problem back through the AssetDispatcher, ResourceCacheImpl and finally the URLChangeTracker. It looks like requests coming in for the css and js files in the jars are using a url like this:
jar:file:/Users/joshcanfield/workspace/out/exploded/thedailytubeWeb/WEB-INF/lib/tapestry-core-5.0.9.jar!/org/apache/tapestry/default.css
The URLChangeTracker sees that the protocol isn't file and returns 0.
ResourceCacheImpl assumes that the return value is the last update time, and stores it. Then when AssetDispatcher checks to see if the file has changed since the date passed in the If-Modified-Since header, it's always going to be less so it sends a SC_NOT_MODIFIED error back to the browser.
It seems like the right behavior here would be to return the current time, or even Long.MAX_VALUE