diff options
3 files changed, 8 insertions, 8 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/GetSearcher.java b/vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/GetSearcher.java index 5723483603b..afae7211b64 100755 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/GetSearcher.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/GetSearcher.java @@ -97,7 +97,7 @@ public class GetSearcher extends Searcher { return sw.toString(); } - public boolean handleReply(Reply reply) { + public boolean handleReply(Reply reply, int numPending) { if ((reply.getTrace().getLevel() > 0) && log.isLoggable(LogLevel.DEBUG)) { String str = reply.getTrace().toString(); log.log(LogLevel.DEBUG, str); @@ -119,7 +119,7 @@ public class GetSearcher extends Searcher { } } - return true; + return numPending > 0; } private void addDocumentHit(Reply reply) { diff --git a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java index b0e52357a64..00f5606b93a 100755 --- a/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java +++ b/vespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java @@ -182,8 +182,8 @@ public class SharedSender implements ReplyHandler { if (owner != null) { metrics.addReply(r); - boolean active = owner.handleReply(r); OwnerState state = activeOwners.get(owner); + boolean active = owner.handleReply(r, state.getNumPending() - 1); if (state != null) { if (log.isLoggable(LogLevel.SPAM)) { @@ -192,8 +192,8 @@ public class SharedSender implements ReplyHandler { if (!active) { state.clearPending(); activeOwners.remove(owner); - } else if ((state.decPending(1) <= 0)) { - activeOwners.remove(owner); + } else { + state.decPending(1); } } else { // TODO: should be debug level if at all. @@ -269,7 +269,7 @@ public class SharedSender implements ReplyHandler { public interface ResultCallback { /** Return true if we should continue waiting for replies for this sender. */ - boolean handleReply(Reply r); + boolean handleReply(Reply r, int numPending); /** * Returns true if feeding has been aborted. No more feeding is allowed with this diff --git a/vespaclient-core/src/main/java/com/yahoo/feedhandler/FeedResponse.java b/vespaclient-core/src/main/java/com/yahoo/feedhandler/FeedResponse.java index f5d717d35e0..cdd4ac76c4c 100755 --- a/vespaclient-core/src/main/java/com/yahoo/feedhandler/FeedResponse.java +++ b/vespaclient-core/src/main/java/com/yahoo/feedhandler/FeedResponse.java @@ -101,7 +101,7 @@ public final class FeedResponse extends HttpResponse implements SharedSender.Res return ""; } - public boolean handleReply(Reply reply) { + public boolean handleReply(Reply reply, int numPending) { metrics.addReply(reply); if (reply.getTrace().getLevel() > 0) { String str = reply.getTrace().toString(); @@ -126,7 +126,7 @@ public final class FeedResponse extends HttpResponse implements SharedSender.Res isAborted = abortOnError; return !abortOnError; } - return true; + return numPending > 0; } public void done() { |