Partial revert of SPR-13090

Use ServletHttpResponse.setDateHeader whenever possible and avoid using
SimpleDateFormat.
This commit is contained in:
Brian Clozel
2015-07-20 22:48:20 +02:00
parent 19fcb72d70
commit dba46c1358
6 changed files with 23 additions and 52 deletions

View File

@@ -22,7 +22,6 @@ import java.util.Date;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -58,10 +57,6 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
private static final String METHOD_HEAD = "HEAD";
private static final String DATE_FORMAT = "EEE, dd MMM yyyy HH:mm:ss zzz";
private static TimeZone GMT = TimeZone.getTimeZone("GMT");
private boolean notModified = false;
@@ -188,7 +183,7 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
}
if(response.getHeader(HEADER_LAST_MODIFIED) == null) {
response.setHeader(HEADER_LAST_MODIFIED, formatDate(lastModifiedTimestamp));
response.setDateHeader(HEADER_LAST_MODIFIED, lastModifiedTimestamp);
}
}
}
@@ -284,7 +279,7 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
response.setHeader(HEADER_ETAG, etag);
}
if(response.getHeader(HEADER_LAST_MODIFIED) == null) {
response.setHeader(HEADER_LAST_MODIFIED, formatDate(lastModifiedTimestamp));
response.setDateHeader(HEADER_LAST_MODIFIED, lastModifiedTimestamp);
}
}
}
@@ -292,12 +287,6 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
return this.notModified;
}
private String formatDate(long date) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT, Locale.US);
dateFormat.setTimeZone(GMT);
return dateFormat.format(new Date(date));
}
public boolean isNotModified() {
return this.notModified;
}

View File

@@ -107,7 +107,7 @@ public class ServletWebRequestHttpMethodsTests {
assertTrue(request.checkNotModified(epochTime));
assertEquals(304, servletResponse.getStatus());
assertEquals(dateFormat.format(currentDate), servletResponse.getHeader("Last-Modified"));
assertEquals("" + epochTime, servletResponse.getHeader("Last-Modified"));
}
@Test
@@ -118,7 +118,7 @@ public class ServletWebRequestHttpMethodsTests {
assertFalse(request.checkNotModified(currentDate.getTime()));
assertEquals(200, servletResponse.getStatus());
assertEquals(dateFormat.format(currentDate), servletResponse.getHeader("Last-Modified"));
assertEquals("" + currentDate.getTime(), servletResponse.getHeader("Last-Modified"));
}
@Test
@@ -189,7 +189,7 @@ public class ServletWebRequestHttpMethodsTests {
assertEquals(304, servletResponse.getStatus());
assertEquals(eTag, servletResponse.getHeader("ETag"));
assertEquals(dateFormat.format(currentDate), servletResponse.getHeader("Last-Modified"));
assertEquals("" + currentDate.getTime(), servletResponse.getHeader("Last-Modified"));
}
@Test
@@ -204,7 +204,7 @@ public class ServletWebRequestHttpMethodsTests {
assertEquals(200, servletResponse.getStatus());
assertEquals(eTag, servletResponse.getHeader("ETag"));
assertEquals(dateFormat.format(currentDate), servletResponse.getHeader("Last-Modified"));
assertEquals("" + currentEpoch, servletResponse.getHeader("Last-Modified"));
}
@Test
@@ -219,7 +219,7 @@ public class ServletWebRequestHttpMethodsTests {
assertEquals(200, servletResponse.getStatus());
assertEquals(currentETag, servletResponse.getHeader("ETag"));
assertEquals(dateFormat.format(currentDate), servletResponse.getHeader("Last-Modified"));
assertEquals("" + epochTime, servletResponse.getHeader("Last-Modified"));
}
@Test
@@ -266,7 +266,7 @@ public class ServletWebRequestHttpMethodsTests {
assertTrue(request.checkNotModified(epochTime));
assertEquals(304, servletResponse.getStatus());
assertEquals(CURRENT_TIME, servletResponse.getHeader("Last-Modified"));
assertEquals("" + epochTime, servletResponse.getHeader("Last-Modified"));
}
@Test
@@ -278,7 +278,7 @@ public class ServletWebRequestHttpMethodsTests {
assertFalse(request.checkNotModified(epochTime));
assertEquals(200, servletResponse.getStatus());
assertEquals(CURRENT_TIME, servletResponse.getHeader("Last-Modified"));
assertEquals("" + epochTime, servletResponse.getHeader("Last-Modified"));
}
}