RequestResponseBodyMethodProcessor decorates ServletInputStream as well
Issue: SPR-13014
This commit is contained in:
parent
89694b009a
commit
a899e066f2
|
@ -21,7 +21,9 @@ import java.io.InputStream;
|
||||||
import java.io.PushbackInputStream;
|
import java.io.PushbackInputStream;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import javax.servlet.ServletInputStream;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletRequestWrapper;
|
||||||
|
|
||||||
import org.springframework.core.Conventions;
|
import org.springframework.core.Conventions;
|
||||||
import org.springframework.core.MethodParameter;
|
import org.springframework.core.MethodParameter;
|
||||||
|
@ -137,7 +139,23 @@ public class RequestResponseBodyMethodProcessor extends AbstractMessageConverter
|
||||||
else {
|
else {
|
||||||
pushbackInputStream.unread(b);
|
pushbackInputStream.unread(b);
|
||||||
}
|
}
|
||||||
inputMessage = new ServletServerHttpRequest(servletRequest) {
|
HttpServletRequest wrappedRequest = new HttpServletRequestWrapper(servletRequest) {
|
||||||
|
@Override
|
||||||
|
public ServletInputStream getInputStream() throws IOException {
|
||||||
|
return new ServletInputStream() {
|
||||||
|
@Override
|
||||||
|
public int read() throws IOException {
|
||||||
|
return pushbackInputStream.read();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void close() throws IOException {
|
||||||
|
super.close();
|
||||||
|
pushbackInputStream.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
inputMessage = new ServletServerHttpRequest(wrappedRequest) {
|
||||||
@Override
|
@Override
|
||||||
public InputStream getBody() {
|
public InputStream getBody() {
|
||||||
// Form POST should not get here
|
// Form POST should not get here
|
||||||
|
|
Loading…
Reference in New Issue