https://issues.apache.org/bugzilla/show_bug.cgi?id=50753
Summary: Asynchronous responses do not contain set response
headers
Product: Tomcat 7
Version: 7.0.6
Platform: PC
OS/Version: Mac OS X 10.5
Status: NEW
Severity: normal
Priority: P2
Component: Catalina
AssignedTo: [email protected]
ReportedBy: [email protected]
Using a servlet with asynchronous support enabled and the response headers set
just before AsyncContext.complete() method is called fails to send the headers
over the wire. More precisely if the headers are set on the HttpServletRequest
on a different thread than the request thread the headers are not sent.
A simple test was devised to showcase the issue.
Setting the headers on the request thread before or after the AsyncContext is
acquired *succeeds* in sending the headers over the wire:
protected void doGet(HttpServletRequest request, final HttpServletResponse
r) throws ServletException, IOException {
final AsyncContext ctx = request.startAsync();
r.setHeader("A", "xyz");
r.setContentType("text/plain");
r.setContentLength("------".getBytes().length);
r.getWriter().print("------");
ctx.start(new Runnable() {
public void run() {
try {
Thread.sleep(5000);
ctx.complete();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Setting the headers just before the response is sent *does not succeed* in
actually sending the headers over the wire:
protected void doGet(HttpServletRequest request, final HttpServletResponse
r) throws ServletException, IOException {
final AsyncContext ctx = request.startAsync();
ctx.start(new Runnable() {
public void run() {
try {
Thread.sleep(5000);
r.setHeader("A", "xyz");
r.setContentType("text/plain");
r.setContentLength("------".getBytes().length);
r.getWriter().print("------");
ctx.complete();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]