diff options
author | jonmv <venstad@gmail.com> | 2023-11-30 13:13:27 +0100 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-11-30 13:13:27 +0100 |
commit | 3491100f5bee54d0918f3f9ba33d9b0b44026f55 (patch) | |
tree | d7538cd3a838ca76441559a807c1c113fc839b5b /container-messagebus/src/main/java | |
parent | 7dde0ab9f6d19e25d55f1b1b4798f83b3ba6592d (diff) |
Ensure mbus is not shut down while processing mbus requests
Diffstat (limited to 'container-messagebus/src/main/java')
-rw-r--r-- | container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java index 42fbec7711d..3910c5c8a43 100644 --- a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java +++ b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java @@ -28,7 +28,7 @@ import java.util.logging.Logger; */ public final class MbusServer extends AbstractResource implements ServerProvider, MessageHandler { - private enum State {INITIALIZING, RUNNING, STOPPED} + private enum State { INITIALIZING, RUNNING, STOPPED } private final static Logger log = Logger.getLogger(MbusServer.class.getName()); private final AtomicReference<State> runState = new AtomicReference<>(State.INITIALIZING); private final CurrentContainer container; @@ -91,7 +91,10 @@ public final class MbusServer extends AbstractResource implements ServerProvider Request request = null; ContentChannel content = null; try { - request = new MbusRequest(container, uri, msg); + request = new MbusRequest(container, uri, msg) { + final ResourceReference sessionReference = session.refer(); + @Override protected void destroy() { try (sessionReference) { super.destroy(); } } + }; content = request.connect(new ServerResponseHandler(msg)); } catch (RuntimeException e) { dispatchErrorReply(msg, ErrorCode.APP_FATAL_ERROR, e.toString()); @@ -152,4 +155,5 @@ public final class MbusServer extends AbstractResource implements ServerProvider return null; } } + } |