Hello!
is there a way to dispose an HttpServletRequest closing the
underlying inputstream without consuming the entire HTTP client stream?
Before answering request.getInputStream().close() let me explain the
scenario ;)
The scenario involves a client application executing a potentially big
HTTP chunked POST (100mb or even gb) and the server, for some reason,
may want to close the connection after a while.
The Server code closing the request is:
------
try {
request.getInputStream().close();
}catch(IOException ignore) {}
}
try {
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
"Error");
response.flushBuffer();
}catch(IOException ignore) {}
try {
response.getOutputStream().close();
} catch (IOException e) {}
------
I logged each step and I know for sure these operations are actually
executed.
After the Server performs the operations above I would expect the client
to get an IOException while still writing the request body stream but
this does not happen!
The client posts all the request stream (consuming resources on the
client machine, etc, etc..) till the end while Tomcat seems to simply
discard those data without closing the underlying connection.
Do you know if this behaviour is supposed to be correct?
Any workaround to force a different one?
Thanks in advance for your availability!
Best regards,
Maurizio
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]