summaryrefslogtreecommitdiffstats
path: root/vespaclient-core
diff options
context:
space:
mode:
Diffstat (limited to 'vespaclient-core')
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedapi/SharedSender.java8
-rwxr-xr-xvespaclient-core/src/main/java/com/yahoo/feedhandler/FeedResponse.java4
2 files changed, 6 insertions, 6 deletions
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() {