提交 81496624 编写于 作者: A Arjen Poutsma 提交者: Sebastien Deleuze

Fixed Servlet flush

Servlet flush will now occur on the next possible write if it cannot be
done immediately.
上级 90048122
......@@ -247,8 +247,11 @@ public class ServletHttpHandlerAdapter extends HttpServlet {
private volatile boolean completed = false;
private volatile boolean flushOnNext = false;
private Subscription subscription;
public ResponseBodySubscriber(ServletAsyncContextSynchronizer synchronizer,
int bufferSize) {
this.synchronizer = synchronizer;
......@@ -321,6 +324,12 @@ public class ServletHttpHandlerAdapter extends HttpServlet {
ServletOutputStream output = synchronizer.getResponse().getOutputStream();
boolean ready = output.isReady();
if (flushOnNext) {
flush(output);
ready = output.isReady();
}
logger.trace("ready: " + ready + " buffer: " + dataBuffer);
if (ready) {
......@@ -370,9 +379,12 @@ public class ServletHttpHandlerAdapter extends HttpServlet {
logger.trace("Flushing");
try {
output.flush();
flushOnNext = false;
}
catch (IOException ignored) {
}
} else {
flushOnNext = true;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册