Author: remm Date: Fri Feb 9 15:46:52 2018 New Revision: 1823670 URL: http://svn.apache.org/viewvc?rev=1823670&view=rev Log: Fix window size reservation deadlock.
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java?rev=1823670&r1=1823669&r2=1823670&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java Fri Feb 9 15:46:52 2018 @@ -226,14 +226,18 @@ class Http2AsyncParser extends Http2Pars readUnknownFrame(streamId, frameType, flags, payloadSize, payload); } } - } catch (Exception e) { + } catch (StreamException e) { error = e; + } catch (Exception e) { + unRead(payload); + failed(e, null); + return; } unRead(payload); } if (state == CompletionState.DONE) { // The call was not completed inline, so must start reading new frames - // or process any error + // or process the stream exception upgradeHandler.upgradeDispatch(SocketEvent.OPEN_READ); } } @@ -241,10 +245,8 @@ class Http2AsyncParser extends Http2Pars @Override public void failed(Throwable e, Void attachment) { error = e; - if (state == CompletionState.DONE) { - // The call was not completed inline, so must start reading new frames - // or process any error - upgradeHandler.upgradeDispatch(SocketEvent.OPEN_READ); + if (state == null || state == CompletionState.DONE) { + upgradeHandler.upgradeDispatch(SocketEvent.ERROR); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org