From ea820868d666739da68850ecae07d20628d941b6 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Wed, 2 Sep 2020 10:09:52 +0000 Subject: - Add test for sequencing. - Also sequence multiple operations to the same id as the originating request. --- .../yahoo/docproc/jdisc/messagebus/MbusRequestContext.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'docproc/src/main') 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 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); } } -- cgit v1.2.3