diff --git a/src/main/java/io/vertx/core/http/impl/Http2ServerRequestImpl.java b/src/main/java/io/vertx/core/http/impl/Http2ServerRequestImpl.java index ea515e71e..3d8449b3d 100644 --- a/src/main/java/io/vertx/core/http/impl/Http2ServerRequestImpl.java +++ b/src/main/java/io/vertx/core/http/impl/Http2ServerRequestImpl.java @@ -523,22 +523,26 @@ public class Http2ServerRequestImpl extends VertxHttp2Stream handler) { - streamPriorityHandler = handler; + synchronized (conn) { + streamPriorityHandler = handler; + } return this; } @Override void handlePriorityChange(StreamPriority streamPriority) { - System.out.println(getClass().getName() + ".handlePriorityChange(" + streamPriority + ")"); + Handler handler; + boolean priorityChanged = false; synchronized (conn) { - Handler handler = streamPriorityHandler; - if (handler != null) { - if(streamPriority != null && !streamPriority.equals(getStreamPriority())) { + handler = streamPriorityHandler; + if(streamPriority != null && !streamPriority.equals(getStreamPriority())) { setStreamPriority(streamPriority); - handler.handle(streamPriority); - } + priorityChanged = true; } } + if (handler != null && priorityChanged) { + handler.handle(streamPriority); + } } }