MockHttpServletRequest returns empty BufferedReader in case of no content

Issue: SPR-15215
(cherry picked from commit 0da964f)
This commit is contained in:
Juergen Hoeller 2017-02-02 19:55:42 +01:00
parent e3cd5c8ef0
commit d4010573af
2 changed files with 16 additions and 6 deletions

View File

@ -22,6 +22,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.text.ParseException;
@ -124,6 +125,9 @@ public class MockHttpServletRequest implements HttpServletRequest {
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
new DelegatingServletInputStream(StreamUtils.emptyInput());
private static final BufferedReader EMPTY_BUFFERED_READER =
new BufferedReader(new StringReader(""));
/**
* Date formats as specified in the HTTP RFC
* @see <a href="https://tools.ietf.org/html/rfc7231#section-7.1.1.1">Section 7.1.1.1 of RFC 7231</a>
@ -617,11 +621,12 @@ public class MockHttpServletRequest implements HttpServletRequest {
if (this.content != null) {
InputStream sourceStream = new ByteArrayInputStream(this.content);
Reader sourceReader = (this.characterEncoding != null) ?
new InputStreamReader(sourceStream, this.characterEncoding) : new InputStreamReader(sourceStream);
new InputStreamReader(sourceStream, this.characterEncoding) :
new InputStreamReader(sourceStream);
return new BufferedReader(sourceReader);
}
else {
return null;
return EMPTY_BUFFERED_READER;
}
}
@ -900,7 +905,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
this.headers.put(name, header);
}
if (value instanceof Collection) {
header.addValues((Collection) value);
header.addValues((Collection<?>) value);
}
else if (value.getClass().isArray()) {
header.addValueArray(value);

View File

@ -22,6 +22,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.text.ParseException;
@ -124,6 +125,9 @@ public class MockHttpServletRequest implements HttpServletRequest {
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
new DelegatingServletInputStream(StreamUtils.emptyInput());
private static final BufferedReader EMPTY_BUFFERED_READER =
new BufferedReader(new StringReader(""));
/**
* Date formats as specified in the HTTP RFC
* @see <a href="https://tools.ietf.org/html/rfc7231#section-7.1.1.1">Section 7.1.1.1 of RFC 7231</a>
@ -617,11 +621,12 @@ public class MockHttpServletRequest implements HttpServletRequest {
if (this.content != null) {
InputStream sourceStream = new ByteArrayInputStream(this.content);
Reader sourceReader = (this.characterEncoding != null) ?
new InputStreamReader(sourceStream, this.characterEncoding) : new InputStreamReader(sourceStream);
new InputStreamReader(sourceStream, this.characterEncoding) :
new InputStreamReader(sourceStream);
return new BufferedReader(sourceReader);
}
else {
return null;
return EMPTY_BUFFERED_READER;
}
}
@ -900,7 +905,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
this.headers.put(name, header);
}
if (value instanceof Collection) {
header.addValues((Collection) value);
header.addValues((Collection<?>) value);
}
else if (value.getClass().isArray()) {
header.addValueArray(value);