Fehler bei der Berechnung des Expires-Headers behoben
authorKai Moritz <kai@coolibri.de>
Thu, 14 Jul 2011 11:51:18 +0000 (13:51 +0200)
committerKai Moritz <kai@coolibri.de>
Sat, 28 Jan 2012 12:03:29 +0000 (13:03 +0100)
Wenn der Integer-Wert cacheSeconds zu groß war, kam es zu einem überlauf,
wodurch das Berechnete Datum für den Expires-Header dann 1 Sekunde vor dem
Auslieferungs-Datum lag. Durch einen Cast des Integer-Wertes zu Long vor
der Berechnung wurde dieser Fehler behoben.

cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/CacheControlInterceptor.java

index 260048c..59c09fe 100644 (file)
@@ -178,7 +178,7 @@ public class CacheControlInterceptor implements HandlerInterceptor {
          * <code>Expires</code>-Header für HTTP/1.0-Clients setzen.
          */
         cacheControl.put("max-age", Integer.toString(cacheSeconds));
-        response.setDateHeader(HEADER_EXPIRES, (now + cacheSeconds * 1000));
+        response.setDateHeader(HEADER_EXPIRES, (now + (long)cacheSeconds * 1000));
       }
 
       StringBuilder builder = new StringBuilder();