aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
index c10a7f600e3..621f0fbe090 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
@@ -45,6 +45,7 @@ import static com.yahoo.collections.CollectionUtil.first;
import static com.yahoo.container.util.Util.quote;
import static com.yahoo.search.federation.StrictContractsConfig.PropagateSourceProperties;
+import java.time.Clock;
import java.util.*;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
@@ -55,6 +56,7 @@ import java.util.logging.Logger;
*
* @author Arne Bergene Fossaa
* @author tonytv
+ * @author bratseth
*/
@Provides(FederationSearcher.FEDERATION)
@After("*")
@@ -68,7 +70,6 @@ public class FederationSearcher extends ForkingSearcher {
public final static CompoundName SOURCENAME = new CompoundName("sourceName");
public final static CompoundName PROVIDERNAME = new CompoundName("providerName");
-
/** Logging field name constants */
public static final String LOG_COUNT_PREFIX = "count_";
@@ -80,6 +81,7 @@ public class FederationSearcher extends ForkingSearcher {
private final boolean strictSearchchain;
private final TargetSelector<?> targetSelector;
+ private final Clock clock = Clock.systemUTC();
@Inject
public FederationSearcher(FederationConfig config, StrictContractsConfig strict,
@@ -197,7 +199,7 @@ public class FederationSearcher extends ForkingSearcher {
private void search(Query query, Execution execution, Collection<Target> targets, Result mergedResults) {
FederationResult results = search(query, execution, targets);
- results.waitForAll(query.getTimeLeft());
+ results.waitForAll((int)query.getTimeLeft(), clock);
HitOrderer s = null;
for (FederationResult.TargetResult targetResult : results.all()) {
@@ -205,10 +207,9 @@ public class FederationSearcher extends ForkingSearcher {
addSearchChainTimedOutError(query, targetResult.target.getId());
} else {
if (s == null) {
- s = dirtyCopyIfModifiedOrderer(mergedResults.hits(), targetResult.futureResult.get().hits().getOrderer());
+ s = dirtyCopyIfModifiedOrderer(mergedResults.hits(), targetResult.getOrTimeoutError().hits().getOrderer());
}
- mergeResult(query, targetResult.target, mergedResults, targetResult.futureResult.get());
-
+ mergeResult(query, targetResult.target, mergedResults, targetResult.getOrTimeoutError());
}
}
}