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"));

