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: [email protected]
For additional commands, e-mail: [email protected]