Fix an sporadic failure in ServerCookieEncoderTest
In testEncodingSingleCookieV0(): Let's assume we encoded a cookie with MaxAge=50 when currentTimeMillis is 10999. Because the encoder will not encode the millisecond part for Expires, the timeMillis value of the encoded Expires field will be 60000. (If we did not dropped the millisecond part, it would be 60999.) Encoding a cookie will take some time, so currentTimeMillis will increase slightly, such as to 11001. diff = (60000 - 11001) / 1000 = 48999 / 1000 = 48 maxAge - diff = 50 - 48 = 2 Due to losing millisecond part twice, we end up with the precision problem illustrated above, and thus we should increase the tolerance from 1 second to 2 seconds. /cc @slandelle
This commit is contained in:
parent
601c01de3b
commit
defb512e4a
@ -46,8 +46,8 @@ public class ServerCookieEncoderTest {
|
||||
assertTrue(matcher.find());
|
||||
Date expiresDate = HttpHeaderDateFormat.get().parse(matcher.group(1));
|
||||
long diff = (expiresDate.getTime() - System.currentTimeMillis()) / 1000;
|
||||
// 1 sec should be fine
|
||||
assertTrue(Math.abs(diff - maxAge) <= 1);
|
||||
// 2 secs should be fine
|
||||
assertTrue(Math.abs(diff - maxAge) <= 2);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Loading…
Reference in New Issue
Block a user