Skip to content

Commit

Permalink
RequestResponseBodyMethodProcessor decorates ServletInputStream as well
Browse files Browse the repository at this point in the history
Issue: SPR-13014
  • Loading branch information
jhoeller committed May 11, 2015
1 parent 89694b0 commit a899e06
Showing 1 changed file with 19 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
import java.io.PushbackInputStream;
import java.lang.reflect.Type;
import java.util.List;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;

import org.springframework.core.Conventions;
import org.springframework.core.MethodParameter;
Expand Down Expand Up @@ -137,7 +139,23 @@ else if (inputStream.markSupported()) {
else {
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
public InputStream getBody() {
// Form POST should not get here
Expand Down

0 comments on commit a899e06

Please sign in to comment.