summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xvespaclient-container-plugin/src/main/java/com/yahoo/storage/searcher/GetSearcher.java4
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java8
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedhandler/FeedResponse.java4
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() {