diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-09-02 10:09:52 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-09-02 10:09:52 +0000 |
commit | ea820868d666739da68850ecae07d20628d941b6 (patch) | |
tree | 64c1133c82b00676f7d754662b129aab78696d1f /docproc/src/main/java/com/yahoo | |
parent | f5487d3d9eda0632b3762312c478c57d83178827 (diff) |
- Add test for sequencing.
- Also sequence multiple operations to the same id as the originating request.
Diffstat (limited to 'docproc/src/main/java/com/yahoo')
-rw-r--r-- | docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java b/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java index 09d25f60835..2b9042bafac 100644 --- a/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java +++ b/docproc/src/main/java/com/yahoo/docproc/jdisc/messagebus/MbusRequestContext.java @@ -51,6 +51,7 @@ public class MbusRequestContext implements RequestContext, ResponseHandler { // document being processed is a resource and is then grabbing more resources of // the same type without releasing its own resources. public final static String internalNoThrottledSource = "internalNoThrottledSource"; + private final static String internalNoThrottledSourcePath = "/" + internalNoThrottledSource; public MbusRequestContext(MbusRequest request, ResponseHandler responseHandler, ComponentRegistry<DocprocService> docprocServiceComponentRegistry, @@ -96,12 +97,16 @@ public class MbusRequestContext implements RequestContext, ResponseHandler { } long inputSequenceId = requestMsg.getSequenceId(); ResponseMerger responseHandler = new ResponseMerger(requestMsg, messages.size(), this); + int numMsgWithOriginalSequenceId = 0; for (Message message : messages) { + if (message.getSequenceId() == inputSequenceId) numMsgWithOriginalSequenceId++; + } + for (Message message : messages) { + String path = internalNoThrottledSourcePath; + if ((numMsgWithOriginalSequenceId == 1) && (message.getSequenceId() == inputSequenceId)) + path = getUri().getPath(); // See comment for internalNoThrottledSource - dispatchRequest(message, - message.getSequenceId() == inputSequenceId ? getUri().getPath() - : "/" + internalNoThrottledSource, - responseHandler); + dispatchRequest(message, path, responseHandler); } } |