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

Reply via email to