Return -1 after parse error for Expires header

Issue: SPR-10648
This commit is contained in:
Rossen Stoyanchev 2013-08-05 12:25:26 -04:00
parent 9035a97e18
commit 0f71da5be6
2 changed files with 19 additions and 3 deletions

View File

@ -354,12 +354,20 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
}
/**
* Returns the date and time at which the message is no longer valid, as specified by the {@code Expires} header.
* <p>The date is returned as the number of milliseconds since January 1, 1970 GMT. Returns -1 when the date is unknown.
* Returns the date and time at which the message is no longer valid, as specified by
* the {@code Expires} header.
* <p>The date is returned as the number of milliseconds since January 1, 1970 GMT.
* Returns -1 when the date is unknown.
*
* @return the expires value
*/
public long getExpires() {
return getFirstDate(EXPIRES);
try {
return getFirstDate(EXPIRES);
}
catch (IllegalArgumentException ex) {
return -1;
}
}
/**

View File

@ -210,6 +210,14 @@ public class HttpHeadersTests {
assertEquals("Invalid Expires header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("expires"));
}
// SPR-10648 (example is from INT-3063)
@Test
public void expiresInvalidDate() {
headers.set("Expires", "-1");
assertEquals(-1, headers.getExpires());
}
@Test
public void ifModifiedSince() {
Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20);