Author: remm
Date: Fri Apr 27 14:17:22 2018
New Revision: 1830356

URL: http://svn.apache.org/viewvc?rev=1830356&view=rev
Log:
Minor refactoring: saves one object.

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=1830356&r1=1830355&r2=1830356&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java Fri Apr 27 
14:17:22 2018
@@ -57,9 +57,8 @@ class Http2AsyncParser extends Http2Pars
         header.clear();
         framePaylod.clear();
         FrameCompletionHandler handler = new FrameCompletionHandler(expected, 
header, framePaylod);
-        FrameCompletionCheck check = new FrameCompletionCheck(handler);
         CompletionState state =
-                socketWrapper.read(BlockingMode.NON_BLOCK, 
socketWrapper.getWriteTimeout(), TimeUnit.MILLISECONDS, null, check, handler, 
header, framePaylod);
+                socketWrapper.read(BlockingMode.NON_BLOCK, 
socketWrapper.getWriteTimeout(), TimeUnit.MILLISECONDS, null, handler, handler, 
header, framePaylod);
         if (state == CompletionState.ERROR || state == CompletionState.INLINE) 
{
             handleAsyncException();
             return true;
@@ -83,14 +82,23 @@ class Http2AsyncParser extends Http2Pars
         }
     }
 
-    private class FrameCompletionCheck implements CompletionCheck {
+    private class FrameCompletionHandler implements CompletionCheck, 
CompletionHandler<Long, Void> {
 
-        private final FrameCompletionHandler handler;
         private boolean parsedFrameHeader = false;
         private boolean validated = false;
 
-        private FrameCompletionCheck(FrameCompletionHandler handler) {
-            this.handler = handler;
+        private final FrameType expected;
+        private final ByteBuffer[] buffers;
+        private int payloadSize;
+        private FrameType frameType;
+        private int flags;
+        private int streamId;
+        private boolean streamException = false;
+        private CompletionState state = null;
+
+        private FrameCompletionHandler(FrameType expected, ByteBuffer... 
buffers) {
+            this.expected = expected;
+            this.buffers = buffers;
         }
 
         @Override
@@ -111,20 +119,20 @@ class Http2AsyncParser extends Http2Pars
                     return CompletionHandlerCall.CONTINUE;
                 }
                 parsedFrameHeader = true;
-                handler.payloadSize = 
ByteUtil.getThreeBytes(frameHeaderBuffer, 0);
-                handler.frameType = 
FrameType.valueOf(ByteUtil.getOneByte(frameHeaderBuffer, 3));
-                handler.flags = ByteUtil.getOneByte(frameHeaderBuffer, 4);
-                handler.streamId = ByteUtil.get31Bits(frameHeaderBuffer, 5);
+                payloadSize = ByteUtil.getThreeBytes(frameHeaderBuffer, 0);
+                frameType = 
FrameType.valueOf(ByteUtil.getOneByte(frameHeaderBuffer, 3));
+                flags = ByteUtil.getOneByte(frameHeaderBuffer, 4);
+                streamId = ByteUtil.get31Bits(frameHeaderBuffer, 5);
             }
-            handler.state = state;
+            this.state = state;
 
             if (!validated) {
                 validated = true;
                 try {
-                    validateFrame(handler.expected, handler.frameType, 
handler.streamId, handler.flags, handler.payloadSize);
+                    validateFrame(expected, frameType, streamId, flags, 
payloadSize);
                 } catch (StreamException e) {
                     error = e;
-                    handler.streamException = true;
+                    streamException = true;
                 } catch (Http2Exception e) {
                     error = e;
                     // The problem will be handled later, consider the frame 
read is done
@@ -132,31 +140,13 @@ class Http2AsyncParser extends Http2Pars
                 }
             }
 
-            if (buffers[1].position() < handler.payloadSize) {
+            if (buffers[1].position() < payloadSize) {
                 return CompletionHandlerCall.CONTINUE;
             }
 
             return CompletionHandlerCall.DONE;
         }
 
-    }
-
-    private class FrameCompletionHandler implements CompletionHandler<Long, 
Void> {
-
-        private final FrameType expected;
-        private final ByteBuffer[] buffers;
-        private int payloadSize;
-        private FrameType frameType;
-        private int flags;
-        private int streamId;
-        private boolean streamException = false;
-        private CompletionState state = null;
-
-        private FrameCompletionHandler(FrameType expected, ByteBuffer... 
buffers) {
-            this.expected = expected;
-            this.buffers = buffers;
-        }
-
         @Override
         public void completed(Long result, Void attachment) {
             if (streamException || error == null) {



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

Reply via email to