Issue Details (XML | Word | Printable)

Key: SPR-4468
Type: Improvement Improvement
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Juergen Hoeller
Reporter: Chris Lee
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Spring Framework

AnnotationMethodHandlerAdapter.ServletHandlerMethodInvoker.resolveStandardArgument() does not allow actual return types from ServletRequest & ServletResponse (e.g. BufferedReader, PrintWriter)

Created: 17/Feb/08 01:29 PM   Updated: 17/Feb/08 04:27 PM
Component/s: SpringWEB
Affects Version/s: 2.5.2
Fix Version/s: 2.5.2

Time Tracking:
Not Specified

File Attachments: 1. Java Source File SpringAnnotationMethodHandlerAdapterParameterTest.java (3 kB)

Environment: 2.5.2 snapshot 20080216-405


 Description  « Hide
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.


 All   Comments   Work Log   Change History   FishEye   Builds      Sort Order: Ascending order - Click to sort in descending order
Chris Lee added a comment - 17/Feb/08 01:30 PM
Test case demonstrating the issue

Successes:

Writer
Reader
InputStream
OutputStream

Failures:

PrintWriter
BufferedReader
ServletInputStream
ServletOutputStream

Juergen Hoeller added a comment - 17/Feb/08 04:27 PM
Good point! AnnotationMethodHandlerAdapter resolves InputStream/OutputStream and Reader/Writer subclasses as well now.

Juergen