summaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-10-16 11:37:29 +0200
committerjonmv <venstad@gmail.com>2023-10-16 11:37:29 +0200
commita378cd3677a50769320ded0b0f96989c6933a94a (patch)
tree7d7710d2af2bdfd2a86b615999d49b14442059c7 /messagebus
parent10bab8a1984fe4f47c34d4ba9831373d6d49e142 (diff)
Discard sequenced messages if task destroyed before run
Diffstat (limited to 'messagebus')
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/Routable.java2
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/Sequencer.java6
2 files changed, 4 insertions, 4 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/Routable.java b/messagebus/src/main/java/com/yahoo/messagebus/Routable.java
index 06d92c48dd3..a94541ac5f6 100755
--- a/messagebus/src/main/java/com/yahoo/messagebus/Routable.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/Routable.java
@@ -10,7 +10,7 @@ import com.yahoo.text.Utf8String;
* A routable can be regarded as a protocol-defined value with additional message bus related state. The state is what
* differentiates two Routables that carry the same value. This includes the application context attached to the
* routable and the {@link CallStack} used to track the path of the routable within messagebus. When a routable is
- * copied (if the protocol supports it) only the value part is copied. The state must be explicitly transfered by
+ * copied (if the protocol supports it) only the value part is copied. The state must be explicitly transferred by
* invoking the {@link #swapState(Routable)} method. That method is used to transfer the state from a message to the
* corresponding reply, or to a different message if the application decides to replace it.
*
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/Sequencer.java b/messagebus/src/main/java/com/yahoo/messagebus/Sequencer.java
index 05e71e0f006..4e10a72c858 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/Sequencer.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/Sequencer.java
@@ -145,10 +145,10 @@ public class Sequencer implements MessageHandler, ReplyHandler {
}
private class SequencedSendTask implements Messenger.Task {
- private final Message msg;
+ private Message msg;
SequencedSendTask(Message msg) { this.msg = msg; }
- @Override public void run() { sequencedSend(msg); }
- @Override public void destroy() { }
+ @Override public void run() { sequencedSend(msg); msg = null; }
+ @Override public void destroy() { if (msg != null) msg.discard(); }
}
private void sendNextInSequence(long seqId) {