diff -Nurp apache-tomcat-9.0.10-src/java/org/apache/coyote/http2/Stream.java apache-tomcat-9.0.10-src-bak/java/org/apache/coyote/http2/Stream.java --- apache-tomcat-9.0.10-src/java/org/apache/coyote/http2/Stream.java 2019-06-09 20:59:53.027000000 -0400 +++ apache-tomcat-9.0.10-src-bak/java/org/apache/coyote/http2/Stream.java 2019-06-09 21:02:31.878000000 -0400 @@ -211,7 +211,12 @@ class Stream extends AbstractStream impl } try { if (block) { - wait(handler.getProtocol().getStreamWriteTimeout()); + long writeTimeout = handler.getProtocol().getStreamWriteTimeout(); + if (writeTimeout < 0) { + wait(); + } else { + wait(writeTimeout); + } windowSize = getWindowSize(); if (windowSize == 0) { String msg = sm.getString("stream.writeTimeout"); @@ -889,7 +894,12 @@ class Stream extends AbstractStream impl log.debug(sm.getString("stream.inputBuffer.empty")); } - inBuffer.wait(handler.getProtocol().getStreamReadTimeout()); + long readTimeout = handler.getProtocol().getStreamReadTimeout(); + if (readTimeout < 0) { + inBuffer.wait(); + } else { + inBuffer.wait(readTimeout); + } if (reset) { throw new IOException(sm.getString("stream.inputBuffer.reset"));