You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2018/02/22 15:59:14 UTC

svn commit: r1825078 - /tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java

Author: remm
Date: Thu Feb 22 15:59:13 2018
New Revision: 1825078

URL: http://svn.apache.org/viewvc?rev=1825078&view=rev
Log:
Minor cleanup.

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=1825078&r1=1825077&r2=1825078&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java Thu Feb 22 15:59:13 2018
@@ -83,12 +83,6 @@ class Http2AsyncParser extends Http2Pars
         }
     }
 
-    private void unRead(ByteBuffer buffer) {
-        if (buffer.hasRemaining()) {
-            socketWrapper.unRead(buffer);
-        }
-    }
-
     private class FrameCompletionCheck implements CompletionCheck {
 
         private final FrameCompletionHandler handler;
@@ -102,9 +96,17 @@ class Http2AsyncParser extends Http2Pars
         @Override
         public CompletionHandlerCall callHandler(CompletionState state,
                 ByteBuffer[] buffers, int offset, int length) {
+            if (length != 2) {
+                try {
+                    throw new IllegalArgumentException();
+                } catch (IllegalArgumentException e) {
+                    error = e;
+                    return CompletionHandlerCall.DONE;
+                }
+            }
             if (!parsedFrameHeader) {
                 // The first buffer should be 9 bytes long
-                ByteBuffer frameHeaderBuffer = buffers[offset];
+                ByteBuffer frameHeaderBuffer = buffers[0];
                 if (frameHeaderBuffer.position() < 9) {
                     return CompletionHandlerCall.CONTINUE;
                 }
@@ -130,7 +132,7 @@ class Http2AsyncParser extends Http2Pars
                 }
             }
 
-            if (buffers[offset + 1].position() < handler.payloadSize) {
+            if (buffers[1].position() < handler.payloadSize) {
                 try {
                     upgradeHandler.checkPauseState();
                 } catch (IOException e) {
@@ -234,7 +236,9 @@ class Http2AsyncParser extends Http2Pars
                 } catch (Exception e) {
                     error = e;
                 }
-                unRead(payload);
+                if (payload.hasRemaining()) {
+                    socketWrapper.unRead(payload);
+                }
             }
             if (state == CompletionState.DONE) {
                 // The call was not completed inline, so must start reading new frames



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org