Expires header not set correctly in AssetService
------------------------------------------------
Key: TAPESTRY-955
URL: http://issues.apache.org/jira/browse/TAPESTRY-955
Project: Tapestry
Type: Bug
Components: Framework
Versions: 4.1
Reporter: Marcel Juffermans
Priority: Minor
The AssetService sets the Expires header to control caching. The duration is
calculated by the following lines of code:
/**
* Time vended assets expire. Since a change in asset content is a change in
asset URI, we want
* them to not expire ... but a year will do.
*/
private final long _expireTime = _startupTime + 365 * 24 * 60 * 60 * 1000;
However, this causes a numeric overflow, resulting in an expiry in the order of
about a month instead of a year. This means that browser clients will start
issuing (unnecessary) conditional requests about a month after a Tapestry
application is deployed, leading to unnecessary overhead.
The correct code is:
private final long _expireTime = _startupTime + 365 * 24 * 60 * 60 * 1000L;
(notice the final "L"). However, I'd argue to make the period longer, for
example 10 years:
private final long _expireTime = _startupTime + 10 * 365 * 24 * 60 * 60 * 1000L;
Regards,
Marcel
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]