aboutsummaryrefslogtreecommitdiffstats
path: root/container-messagebus/src
diff options
context:
space:
mode:
Diffstat (limited to 'container-messagebus/src')
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusClient.java8
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusServer.java4
2 files changed, 9 insertions, 3 deletions
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusClient.java b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusClient.java
index 7fa294422d6..31453a78dfe 100644
--- a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusClient.java
+++ b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/MbusClient.java
@@ -43,6 +43,7 @@ public final class MbusClient extends AbstractResource implements ClientProvider
this.session = session;
this.sessionReference = session.refer(this);
thread = new Thread(new SenderTask(), "mbus-client-" + threadId.getAndIncrement());
+ thread.setDaemon(true);
}
@Override
@@ -79,6 +80,11 @@ public final class MbusClient extends AbstractResource implements ClientProvider
log.log(Level.FINE, "Destroying message bus client.");
sessionReference.close();
done = true;
+ try {
+ thread.join();
+ } catch (InterruptedException e) {
+
+ }
}
@Override
@@ -121,7 +127,7 @@ public final class MbusClient extends AbstractResource implements ClientProvider
if (error == null) {
return true;
}
- if (error.isFatal()) {
+ if (error.isFatal() || done) {
final Reply reply = new EmptyReply();
reply.swapState(request.getMessage());
reply.addError(error);
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 e7b1fc3e71d..084a5f82268 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
@@ -75,8 +75,8 @@ public final class MbusServer extends AbstractResource implements ServerProvider
return;
}
if (state == State.STOPPED) {
- // We might need to detect requests originating from the same JVM, as they nede to fail fast
- // As they are holding references to the container preventing proper shutdown.
+ // We might need to detect requests originating from the same JVM, as they need to fail fast
+ // as they are holding references to the container preventing proper shutdown.
dispatchErrorReply(msg, ErrorCode.SESSION_BUSY, "MBusServer has been closed.");
return;
}