diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java index c6356c552f..5997ddd730 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java @@ -62,7 +62,6 @@ import org.springframework.util.Assert; import org.springframework.util.LinkedCaseInsensitiveMap; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; -import org.springframework.util.ObjectUtils; import org.springframework.util.StreamUtils; import org.springframework.util.StringUtils; @@ -218,8 +217,6 @@ public class MockHttpServletRequest implements HttpServletRequest { private Cookie[] cookies; - private boolean cookieHeaderSet; - private final Map headers = new LinkedCaseInsensitiveMap<>(); private String method; @@ -931,7 +928,8 @@ public class MockHttpServletRequest implements HttpServletRequest { public void setCookies(Cookie... cookies) { this.cookies = cookies; - if (!this.cookieHeaderSet && !ObjectUtils.isEmpty(cookies)) { + this.headers.remove(HttpHeaders.COOKIE); + if (cookies != null) { Arrays.stream(cookies) .map(c -> c.getName() + '=' + (c.getValue() == null ? "" : c.getValue())) .forEach(value -> doAddHeaderValue(HttpHeaders.COOKIE, value, false)); @@ -972,7 +970,6 @@ public class MockHttpServletRequest implements HttpServletRequest { setPreferredLocales(headers.getAcceptLanguageAsLocales()); } else { - this.cookieHeaderSet = HttpHeaders.COOKIE.equalsIgnoreCase(name); doAddHeaderValue(name, value, false); } } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java index 2f49908287..2f89c940eb 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java @@ -98,8 +98,6 @@ public class MockHttpServletResponse implements HttpServletResponse { private final List cookies = new ArrayList<>(); - private boolean cookieHeaderSet; - private final Map headers = new LinkedCaseInsensitiveMap<>(); private int status = HttpServletResponse.SC_OK; @@ -323,9 +321,7 @@ public class MockHttpServletResponse implements HttpServletResponse { public void addCookie(Cookie cookie) { Assert.notNull(cookie, "Cookie must not be null"); this.cookies.add(cookie); - if (!this.cookieHeaderSet) { - doAddHeaderValue(HttpHeaders.SET_COOKIE, getCookieHeader(cookie), false); - } + doAddHeaderValue(HttpHeaders.SET_COOKIE, getCookieHeader(cookie), false); } private String getCookieHeader(Cookie cookie) { @@ -536,13 +532,11 @@ public class MockHttpServletResponse implements HttpServletResponse { @Override public void setHeader(String name, String value) { - this.cookieHeaderSet = HttpHeaders.SET_COOKIE.equalsIgnoreCase(name); setHeaderValue(name, value); } @Override public void addHeader(String name, String value) { - this.cookieHeaderSet = HttpHeaders.SET_COOKIE.equalsIgnoreCase(name); addHeaderValue(name, value); } diff --git a/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletRequest.java b/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletRequest.java index ad320cad55..6ebc70fce6 100644 --- a/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletRequest.java +++ b/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletRequest.java @@ -62,7 +62,6 @@ import org.springframework.util.Assert; import org.springframework.util.LinkedCaseInsensitiveMap; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; -import org.springframework.util.ObjectUtils; import org.springframework.util.StreamUtils; import org.springframework.util.StringUtils; @@ -218,8 +217,6 @@ public class MockHttpServletRequest implements HttpServletRequest { private Cookie[] cookies; - private boolean cookieHeaderSet; - private final Map headers = new LinkedCaseInsensitiveMap<>(); private String method; @@ -931,7 +928,8 @@ public class MockHttpServletRequest implements HttpServletRequest { public void setCookies(Cookie... cookies) { this.cookies = cookies; - if (!this.cookieHeaderSet && !ObjectUtils.isEmpty(cookies)) { + this.headers.remove(HttpHeaders.COOKIE); + if (cookies != null) { Arrays.stream(cookies) .map(c -> c.getName() + '=' + (c.getValue() == null ? "" : c.getValue())) .forEach(value -> doAddHeaderValue(HttpHeaders.COOKIE, value, false)); @@ -972,7 +970,6 @@ public class MockHttpServletRequest implements HttpServletRequest { setPreferredLocales(headers.getAcceptLanguageAsLocales()); } else { - this.cookieHeaderSet = HttpHeaders.COOKIE.equalsIgnoreCase(name); doAddHeaderValue(name, value, false); } } diff --git a/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletResponse.java b/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletResponse.java index ce6b73b218..fc9cc8279f 100644 --- a/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletResponse.java +++ b/spring-web/src/test/java/org/springframework/mock/web/test/MockHttpServletResponse.java @@ -98,8 +98,6 @@ public class MockHttpServletResponse implements HttpServletResponse { private final List cookies = new ArrayList<>(); - private boolean cookieHeaderSet; - private final Map headers = new LinkedCaseInsensitiveMap<>(); private int status = HttpServletResponse.SC_OK; @@ -323,9 +321,7 @@ public class MockHttpServletResponse implements HttpServletResponse { public void addCookie(Cookie cookie) { Assert.notNull(cookie, "Cookie must not be null"); this.cookies.add(cookie); - if (!this.cookieHeaderSet) { - doAddHeaderValue(HttpHeaders.SET_COOKIE, getCookieHeader(cookie), false); - } + doAddHeaderValue(HttpHeaders.SET_COOKIE, getCookieHeader(cookie), false); } private String getCookieHeader(Cookie cookie) { @@ -536,13 +532,11 @@ public class MockHttpServletResponse implements HttpServletResponse { @Override public void setHeader(String name, String value) { - this.cookieHeaderSet = HttpHeaders.SET_COOKIE.equalsIgnoreCase(name); setHeaderValue(name, value); } @Override public void addHeader(String name, String value) { - this.cookieHeaderSet = HttpHeaders.SET_COOKIE.equalsIgnoreCase(name); addHeaderValue(name, value); }