diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java index d9cbe23198c2..d176e4093774 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java @@ -286,10 +286,17 @@ void onWriteComplete(boolean last, Throwable failure) case PENDING: _apiState = ApiState.ASYNC; + if (failure != null) + { + _onError = failure; + wake = _channel.getState().onWritePossible(); + } break; case UNREADY: _apiState = ApiState.READY; + if (failure != null) + _onError = failure; wake = _channel.getState().onWritePossible(); break; @@ -1345,7 +1352,7 @@ public void run() finally { // Initiate an async close - close(null); + close(Callback.NOOP); } } }