From 47c289188e86922e9d94d5cd62debc76f6d855c0 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Fri, 23 Sep 2022 16:54:21 +1000 Subject: [PATCH] Fix #8536 HotSwap start race (#8544) Don't stop until after new handler installed. --- .../eclipse/jetty/server/handler/HotSwapHandler.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/HotSwapHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/HotSwapHandler.java index 83aa0108dbe..88067396f74 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/HotSwapHandler.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/HotSwapHandler.java @@ -65,10 +65,20 @@ public class HotSwapHandler extends AbstractHandlerContainer try { Server server = getServer(); + if (handler == _handler) + return; + + Handler oldHandler = _handler; if (handler != null) + { handler.setServer(server); - updateBean(_handler, handler, true); + addBean(handler, true); + if (oldHandler != null && oldHandler.isStarted()) + handler.start(); + } _handler = handler; + if (oldHandler != null) + removeBean(oldHandler); } catch (Exception e) {