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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org