Author: remm
Date: Fri Feb 9 13:01:26 2018
New Revision: 1823650
URL: http://svn.apache.org/viewvc?rev=1823650&view=rev
Log:
Some more cleanups.
Modified:
tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java
tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.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=1823650&r1=1823649&r2=1823650&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2AsyncParser.java Fri Feb 9
13:01:26 2018
@@ -79,7 +79,6 @@ class Http2AsyncParser extends Http2Pars
}
}
- @Override
protected void unRead(ByteBuffer buffer) {
if (buffer != null && buffer.hasRemaining()) {
socketWrapper.unRead(buffer);
@@ -186,50 +185,51 @@ class Http2AsyncParser extends Http2Pars
@Override
public void completed(Long result, Void attachment) {
if (streamException || error == null) {
- buffers[1].flip();
+ ByteBuffer payload = buffers[1];
+ payload.flip();
try {
if (streamException) {
- swallow(streamId, payloadSize, false, buffers[1]);
- unRead(buffers[1]);
+ swallow(streamId, payloadSize, false, payload);
} else {
switch (frameType) {
case DATA:
- readDataFrame(streamId, flags, payloadSize,
buffers[1]);
+ readDataFrame(streamId, flags, payloadSize,
payload);
break;
case HEADERS:
- readHeadersFrame(streamId, flags, payloadSize,
buffers[1]);
+ readHeadersFrame(streamId, flags, payloadSize,
payload);
break;
case PRIORITY:
- readPriorityFrame(streamId, buffers[1]);
+ readPriorityFrame(streamId, payload);
break;
case RST:
- readRstFrame(streamId, buffers[1]);
+ readRstFrame(streamId, payload);
break;
case SETTINGS:
- readSettingsFrame(flags, payloadSize, buffers[1]);
+ readSettingsFrame(flags, payloadSize, payload);
break;
case PUSH_PROMISE:
- readPushPromiseFrame(streamId, buffers[1]);
+ readPushPromiseFrame(streamId, payload);
break;
case PING:
- readPingFrame(flags, buffers[1]);
+ readPingFrame(flags, payload);
break;
case GOAWAY:
- readGoawayFrame(payloadSize, buffers[1]);
+ readGoawayFrame(payloadSize, payload);
break;
case WINDOW_UPDATE:
- readWindowUpdateFrame(streamId, buffers[1]);
+ readWindowUpdateFrame(streamId, payload);
break;
case CONTINUATION:
- readContinuationFrame(streamId, flags,
payloadSize, buffers[1]);
+ readContinuationFrame(streamId, flags,
payloadSize, payload);
break;
case UNKNOWN:
- readUnknownFrame(streamId, frameType, flags,
payloadSize, buffers[1]);
+ readUnknownFrame(streamId, frameType, flags,
payloadSize, payload);
}
}
} catch (Exception e) {
error = e;
}
+ unRead(payload);
}
if (state == CompletionState.DONE) {
// The call was not completed inline, so must start reading
new frames
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java?rev=1823650&r1=1823649&r2=1823650&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2Parser.java Fri Feb 9
13:01:26 2018
@@ -127,14 +127,6 @@ class Http2Parser {
return true;
}
- /**
- * NO-OP for non-async parser.
- *
- * @param buffer Unused.
- */
- protected void unRead(ByteBuffer buffer) {
- }
-
protected void readDataFrame(int streamId, int flags, int payloadSize,
ByteBuffer buffer)
throws Http2Exception, IOException {
// Process the Stream
@@ -190,7 +182,6 @@ class Http2Parser {
synchronized (dest) {
if (dest.remaining() < dataLength) {
swallow(streamId, dataLength, false, buffer);
- unRead(buffer);
// Client has sent more data than permitted by Window size
throw new StreamException("Client sent more data than
stream window allowed", Http2Error.FLOW_CONTROL_ERROR, streamId);
}
@@ -213,7 +204,6 @@ class Http2Parser {
output.endRequestBodyFrame(streamId);
}
}
- unRead(buffer);
if (padLength > 0) {
output.swallowedPadding(streamId, padLength);
}
@@ -277,8 +267,6 @@ class Http2Parser {
swallow(streamId, padLength, true, buffer);
- unRead(buffer);
-
if (Flags.isEndOfHeaders(flags)) {
onHeadersComplete(streamId);
} else {
@@ -293,7 +281,6 @@ class Http2Parser {
input.fill(true, payload);
} else {
buffer.get(payload);
- unRead(buffer);
}
boolean exclusive = ByteUtil.isBit7Set(payload[0]);
@@ -315,7 +302,6 @@ class Http2Parser {
input.fill(true, payload);
} else {
buffer.get(payload);
- unRead(buffer);
}
long errorCode = ByteUtil.getFourBytes(payload, 0);
@@ -347,13 +333,11 @@ class Http2Parser {
output.setting(Setting.valueOf(id), value);
}
}
- unRead(buffer);
output.settingsEnd(ack);
}
protected void readPushPromiseFrame(int streamId, ByteBuffer buffer)
throws Http2Exception {
- unRead(buffer);
throw new
ConnectionException(sm.getString("http2Parser.processFramePushPromise",
connectionId, Integer.valueOf(streamId)),
Http2Error.PROTOCOL_ERROR);
}
@@ -366,7 +350,6 @@ class Http2Parser {
input.fill(true, payload);
} else {
buffer.get(payload);
- unRead(buffer);
}
output.pingReceive(payload, Flags.isAck(flags));
}
@@ -378,7 +361,6 @@ class Http2Parser {
input.fill(true, payload);
} else {
buffer.get(payload);
- unRead(buffer);
}
int lastStreamId = ByteUtil.get31Bits(payload, 0);
@@ -397,7 +379,6 @@ class Http2Parser {
input.fill(true, payload);
} else {
buffer.get(payload);
- unRead(buffer);
}
int windowSizeIncrement = ByteUtil.get31Bits(payload, 0);
@@ -433,7 +414,6 @@ class Http2Parser {
}
readHeaderPayload(streamId, payloadSize, buffer);
- unRead(buffer);
if (Flags.isEndOfHeaders(flags)) {
headersCurrentStream = -1;
@@ -521,7 +501,6 @@ class Http2Parser {
// Will never happen because swallow() is called with mustBeZero
set
// to false
}
- unRead(buffer);
output.swallowed(streamId, frameType, flags, payloadSize);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]