
|
If you were logged in you would be able to see more operations.
|
|
|
|
Handler methods that declare the actual return types from:
ServletInputStream ServletRequest.getInputStream()
BufferedReader ServletRequest.getReader()
PrintWriter ServetResponse.getWriter()
ServletOutputStream ServletResponse.getOutputStream()
...fail during invocation, as the method AnnotationMethodHandlerAdapter.ServletHandlerMethodInvoker.resolveStandardArgument() is checking for an exact class match against the supertype:
else if (InputStream.class.equals(parameterType)) {
return request.getInputStream();
}
else if (Reader.class.equals(parameterType)) {
return request.getReader();
}
else if (OutputStream.class.equals(parameterType)) {
this.responseArgumentUsed = true;
return response.getOutputStream();
}
else if (Writer.class.equals(parameterType)) {
this.responseArgumentUsed = true;
return response.getWriter();
}
Attaching a test case demonstrating this.
|
|
Description
|
Handler methods that declare the actual return types from:
ServletInputStream ServletRequest.getInputStream()
BufferedReader ServletRequest.getReader()
PrintWriter ServetResponse.getWriter()
ServletOutputStream ServletResponse.getOutputStream()
...fail during invocation, as the method AnnotationMethodHandlerAdapter.ServletHandlerMethodInvoker.resolveStandardArgument() is checking for an exact class match against the supertype:
else if (InputStream.class.equals(parameterType)) {
return request.getInputStream();
}
else if (Reader.class.equals(parameterType)) {
return request.getReader();
}
else if (OutputStream.class.equals(parameterType)) {
this.responseArgumentUsed = true;
return response.getOutputStream();
}
else if (Writer.class.equals(parameterType)) {
this.responseArgumentUsed = true;
return response.getWriter();
}
Attaching a test case demonstrating this.
|
Show » |
|
Successes:
Writer
Reader
InputStream
OutputStream
Failures:
PrintWriter
BufferedReader
ServletInputStream
ServletOutputStream