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 af6536d Sync on socketWrapper like the non async code does
af6536d is described below
commit af6536d9fe01961e795a36628eaeb15506ed6fbc
Author: remm <[email protected]>
AuthorDate: Fri May 24 10:17:12 2019 +0200
Sync on socketWrapper like the non async code does
Most likely readDataFrame and readContinuationFrame would need sync as
well, so include them.
---
java/org/apache/coyote/http2/Http2AsyncParser.java | 66 +++++++++++-----------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/java/org/apache/coyote/http2/Http2AsyncParser.java
b/java/org/apache/coyote/http2/Http2AsyncParser.java
index ba3ec3a..55d97eb 100644
--- a/java/org/apache/coyote/http2/Http2AsyncParser.java
+++ b/java/org/apache/coyote/http2/Http2AsyncParser.java
@@ -240,41 +240,41 @@ class Http2AsyncParser extends Http2Parser {
if (streamException) {
swallow(streamId, payloadSize, false, payload);
} else {
- switch (frameType) {
- case DATA:
- readDataFrame(streamId, flags, payloadSize,
payload);
- break;
- case HEADERS:
- synchronized (upgradeHandler) {
+ 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);
}
- 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
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]