summaryrefslogtreecommitdiffstats
path: root/container-messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-01-07 15:06:17 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2022-01-07 15:06:17 +0100
commit48f8a7c32a5d7b575470500a3c90dfea561b6091 (patch)
tree2c7cae1f45492137f73facf441509ef96bde78b2 /container-messagebus
parentcdb6a8521b56ff30ff8abda7b5342986df977f2e (diff)
Use a daemon thread have wait for shutdown to complete.
Diffstat (limited to 'container-messagebus')
-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;
}