DefaultCookieSerializer ignores null Cookie value

Previously a null Cookie value was returned by DefaultCookieSerializer
readCookieValues(). This could cause NullPointerExeptions later on.

This commit ignores cookies with a null value.

Fixes gh-392
This commit is contained in:
Rob Winch
2016-03-01 09:57:47 -06:00
parent 09d7704c9e
commit 47d897c846
2 changed files with 27 additions and 0 deletions

View File

@@ -59,6 +59,9 @@ public class DefaultCookieSerializer implements CookieSerializer {
for (Cookie cookie : cookies) {
if (cookieName.equals(cookie.getName())) {
String sessionId = cookie.getValue();
if(sessionId == null) {
continue;
}
if(jvmRoute != null && sessionId.endsWith(jvmRoute)) {
sessionId = sessionId.substring(0, sessionId.length() - jvmRoute.length());
}

View File

@@ -88,6 +88,30 @@ public class DefaultCookieSerializerTests {
assertThat(serializer.readCookieValues(request)).containsExactly(sessionId, secondSession);
}
// gh-392
@Test
public void readCookieValuesNullCookieValue() {
request.setCookies(new Cookie(cookieName, null));
assertThat(serializer.readCookieValues(request)).isEmpty();
}
@Test
public void readCookieValuesNullCookieValueAndJvmRoute() {
serializer.setJvmRoute("123");
request.setCookies(new Cookie(cookieName, null));
assertThat(serializer.readCookieValues(request)).isEmpty();
}
@Test
public void readCookieValuesNullCookieValueAndNotNullCookie() {
serializer.setJvmRoute("123");
request.setCookies(new Cookie(cookieName, null), new Cookie(cookieName, sessionId));
assertThat(serializer.readCookieValues(request)).containsOnly(sessionId);
}
// --- writeCookie ---
@Test