Fix NPE in OnCommittedResponseWrapper trackContentLength (#3824)

OnCommittedResponseWrapper trackContentLength will throw a
NullPointerException when the content length passed in is null.

This commit properly tracks the null value as a length of 4.

Fixes gh-3823
This commit is contained in:
Rob Winch 2016-04-19 13:58:56 -05:00 committed by Joe Grandja
parent a5a8aeb550
commit 1dbd3f5906
2 changed files with 17 additions and 1 deletions

View File

@ -194,7 +194,8 @@ public abstract class OnCommittedResponseWrapper extends HttpServletResponseWrap
}
private void trackContentLength(String content) {
checkContentLength(content.length());
int contentLength = content == null ? 4 : content.length();
checkContentLength(contentLength);
}
/**

View File

@ -545,6 +545,21 @@ public class OnCommittedResponseWrapperTests {
// The amount of content specified in the setContentLength method of the response
// has been greater than zero and has been written to the response.
// gh-3823
@Test
public void contentLengthPrintWriterWriteNullCommits() throws Exception {
String expected = null;
this.response.setContentLength(String.valueOf(expected).length() + 1);
this.response.getWriter().write(expected);
assertThat(this.committed).isFalse();
this.response.getWriter().write("a");
assertThat(this.committed).isTrue();
}
@Test
public void contentLengthPrintWriterWriteIntCommits() throws Exception {
int expected = 1;