diff --git a/spring-session-core/src/main/java/org/springframework/session/web/http/OnCommittedResponseWrapper.java b/spring-session-core/src/main/java/org/springframework/session/web/http/OnCommittedResponseWrapper.java index db372111..595cf41e 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/http/OnCommittedResponseWrapper.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/http/OnCommittedResponseWrapper.java @@ -69,6 +69,12 @@ abstract class OnCommittedResponseWrapper extends HttpServletResponseWrapper { super.addHeader(name, value); } + @Override + public void setContentLengthLong(long len) { + setContentLength(len); + super.setContentLengthLong(len); + } + @Override public void setContentLength(int len) { setContentLength((long) len); diff --git a/spring-session-core/src/test/java/org/springframework/session/web/http/OnCommittedResponseWrapperTests.java b/spring-session-core/src/test/java/org/springframework/session/web/http/OnCommittedResponseWrapperTests.java index a8415471..0d61eb7d 100644 --- a/spring-session-core/src/test/java/org/springframework/session/web/http/OnCommittedResponseWrapperTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/web/http/OnCommittedResponseWrapperTests.java @@ -1100,6 +1100,17 @@ class OnCommittedResponseWrapperTests { assertThat(this.committed).isTrue(); } + // gh-7261 + @Test + void contentLengthLongOutputStreamWriteStringCommits() throws IOException { + String body = "something"; + this.response.setContentLengthLong(body.length()); + + this.response.getOutputStream().print(body); + + assertThat(this.committed).isTrue(); + } + @Test void bufferSizeCommitsOnce() throws Exception { String expected = "1234567890";