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]

Reply via email to