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
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:
-