MockHttpServletRequest returns empty BufferedReader in case of no content
Issue: SPR-15215
This commit is contained in:
@@ -22,6 +22,7 @@ import java.io.IOException;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
import java.io.StringReader;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
@@ -125,6 +126,9 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||||||
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
|
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
|
||||||
new DelegatingServletInputStream(StreamUtils.emptyInput());
|
new DelegatingServletInputStream(StreamUtils.emptyInput());
|
||||||
|
|
||||||
|
private static final BufferedReader EMPTY_BUFFERED_READER =
|
||||||
|
new BufferedReader(new StringReader(""));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Date formats as specified in the HTTP RFC
|
* 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>
|
* @see <a href="https://tools.ietf.org/html/rfc7231#section-7.1.1.1">Section 7.1.1.1 of RFC 7231</a>
|
||||||
@@ -659,11 +663,12 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||||||
if (this.content != null) {
|
if (this.content != null) {
|
||||||
InputStream sourceStream = new ByteArrayInputStream(this.content);
|
InputStream sourceStream = new ByteArrayInputStream(this.content);
|
||||||
Reader sourceReader = (this.characterEncoding != null) ?
|
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);
|
return new BufferedReader(sourceReader);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return null;
|
return EMPTY_BUFFERED_READER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import java.io.IOException;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
import java.io.StringReader;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.security.Principal;
|
import java.security.Principal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
@@ -125,6 +126,9 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||||||
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
|
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
|
||||||
new DelegatingServletInputStream(StreamUtils.emptyInput());
|
new DelegatingServletInputStream(StreamUtils.emptyInput());
|
||||||
|
|
||||||
|
private static final BufferedReader EMPTY_BUFFERED_READER =
|
||||||
|
new BufferedReader(new StringReader(""));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Date formats as specified in the HTTP RFC
|
* 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>
|
* @see <a href="https://tools.ietf.org/html/rfc7231#section-7.1.1.1">Section 7.1.1.1 of RFC 7231</a>
|
||||||
@@ -659,11 +663,12 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||||||
if (this.content != null) {
|
if (this.content != null) {
|
||||||
InputStream sourceStream = new ByteArrayInputStream(this.content);
|
InputStream sourceStream = new ByteArrayInputStream(this.content);
|
||||||
Reader sourceReader = (this.characterEncoding != null) ?
|
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);
|
return new BufferedReader(sourceReader);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return null;
|
return EMPTY_BUFFERED_READER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -940,7 +945,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||||||
this.headers.put(name, header);
|
this.headers.put(name, header);
|
||||||
}
|
}
|
||||||
if (value instanceof Collection) {
|
if (value instanceof Collection) {
|
||||||
header.addValues((Collection) value);
|
header.addValues((Collection<?>) value);
|
||||||
}
|
}
|
||||||
else if (value.getClass().isArray()) {
|
else if (value.getClass().isArray()) {
|
||||||
header.addValueArray(value);
|
header.addValueArray(value);
|
||||||
|
|||||||
Reference in New Issue
Block a user