diff options
author | jonmv <venstad@gmail.com> | 2023-10-16 11:37:29 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-10-16 11:37:29 +0200 |
commit | a378cd3677a50769320ded0b0f96989c6933a94a (patch) | |
tree | 7d7710d2af2bdfd2a86b615999d49b14442059c7 /messagebus | |
parent | 10bab8a1984fe4f47c34d4ba9831373d6d49e142 (diff) |
Discard sequenced messages if task destroyed before run
Diffstat (limited to 'messagebus')
-rwxr-xr-x | messagebus/src/main/java/com/yahoo/messagebus/Routable.java | 2 | ||||
-rw-r--r-- | messagebus/src/main/java/com/yahoo/messagebus/Sequencer.java | 6 |
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) { |