aboutsummaryrefslogtreecommitdiffstats
path: root/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java
diff options
context:
space:
mode:
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;
}
}
+
}