summaryrefslogtreecommitdiffstats
path: root/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-11-30 13:13:27 +0100
committerjonmv <venstad@gmail.com>2023-11-30 13:13:27 +0100
commit3491100f5bee54d0918f3f9ba33d9b0b44026f55 (patch)
treed7538cd3a838ca76441559a807c1c113fc839b5b /container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java
parent7dde0ab9f6d19e25d55f1b1b4798f83b3ba6592d (diff)
Ensure mbus is not shut down while processing mbus requests
Diffstat (limited to 'container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java')
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java8
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;
}
}
+
}