This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push: new 911c3ab Minimize the input sync in a way that still works for me 911c3ab is described below commit 911c3ab9df18ea735f643a03a134fa5f221c71e1 Author: remm <r...@apache.org> AuthorDate: Fri Jun 7 10:15:48 2019 +0200 Minimize the input sync in a way that still works for me Note: Output or input are both the upgrade handler. Note2: Http2AsyncUpgradeHandler.writeHeaders needs at least the same sync (on this). --- java/org/apache/coyote/http2/Http2AsyncParser.java | 68 +++++++++++----------- java/org/apache/coyote/http2/Http2Parser.java | 10 ++-- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/java/org/apache/coyote/http2/Http2AsyncParser.java b/java/org/apache/coyote/http2/Http2AsyncParser.java index 55d97eb..827105a 100644 --- a/java/org/apache/coyote/http2/Http2AsyncParser.java +++ b/java/org/apache/coyote/http2/Http2AsyncParser.java @@ -240,41 +240,39 @@ class Http2AsyncParser extends Http2Parser { if (streamException) { swallow(streamId, payloadSize, false, payload); } else { - synchronized (socketWrapper) { - switch (frameType) { - case DATA: - readDataFrame(streamId, flags, payloadSize, payload); - break; - case HEADERS: - readHeadersFrame(streamId, flags, payloadSize, payload); - break; - case PRIORITY: - readPriorityFrame(streamId, payload); - break; - case RST: - readRstFrame(streamId, payload); - break; - case SETTINGS: - readSettingsFrame(flags, payloadSize, payload); - break; - case PUSH_PROMISE: - readPushPromiseFrame(streamId, payload); - break; - case PING: - readPingFrame(flags, payload); - break; - case GOAWAY: - readGoawayFrame(payloadSize, payload); - break; - case WINDOW_UPDATE: - readWindowUpdateFrame(streamId, payload); - break; - case CONTINUATION: - readContinuationFrame(streamId, flags, payloadSize, payload); - break; - case UNKNOWN: - readUnknownFrame(streamId, frameType, flags, payloadSize, payload); - } + switch (frameType) { + case DATA: + readDataFrame(streamId, flags, payloadSize, payload); + break; + case HEADERS: + readHeadersFrame(streamId, flags, payloadSize, payload); + break; + case PRIORITY: + readPriorityFrame(streamId, payload); + break; + case RST: + readRstFrame(streamId, payload); + break; + case SETTINGS: + readSettingsFrame(flags, payloadSize, payload); + break; + case PUSH_PROMISE: + readPushPromiseFrame(streamId, payload); + break; + case PING: + readPingFrame(flags, payload); + break; + case GOAWAY: + readGoawayFrame(payloadSize, payload); + break; + case WINDOW_UPDATE: + readWindowUpdateFrame(streamId, payload); + break; + case CONTINUATION: + readContinuationFrame(streamId, flags, payloadSize, payload); + break; + case UNKNOWN: + readUnknownFrame(streamId, frameType, flags, payloadSize, payload); } } // See if there is a new 9 byte header and continue parsing if possible diff --git a/java/org/apache/coyote/http2/Http2Parser.java b/java/org/apache/coyote/http2/Http2Parser.java index e99d3ff..367b809 100644 --- a/java/org/apache/coyote/http2/Http2Parser.java +++ b/java/org/apache/coyote/http2/Http2Parser.java @@ -582,11 +582,13 @@ class Http2Parser { // going to be thrown. hpackDecoder.getHeaderEmitter().validateHeaders(); - output.headersEnd(streamId); + synchronized (output) { + output.headersEnd(streamId); - if (headersEndStream) { - output.receivedEndOfStream(streamId); - headersEndStream = false; + if (headersEndStream) { + output.receivedEndOfStream(streamId); + headersEndStream = false; + } } // Reset size for new request if the buffer was previously expanded --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org