summaryrefslogtreecommitdiffstats
path: root/container-search/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-10-07 12:55:58 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2021-10-07 12:55:58 +0200
commit2c50eed11652022bf31eab9002277e57e331de23 (patch)
tree1dbd3da083c099914df28a18e95b7952efea3a57 /container-search/src
parent03224ae1749a058c88ee926738195ae0d3204322 (diff)
If execution is rejected, fall back to doing it yourself.
Diffstat (limited to 'container-search/src')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java12
2 files changed, 11 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
index b2f752182bb..a2decd8c42f 100644
--- a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
@@ -306,7 +306,7 @@ public class ClusterSearcher extends Searcher {
}
}
- private void processResult(Query query, FutureTask<Result> task, Result mergedResult) {
+ private static void processResult(Query query, FutureTask<Result> task, Result mergedResult) {
try {
Result result = task.get();
mergedResult.mergeWith(result);
diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java b/container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java
index 6dbb6f88653..edd3202d63a 100644
--- a/container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java
+++ b/container-search/src/main/java/com/yahoo/search/searchchain/AsyncExecution.java
@@ -148,7 +148,11 @@ public class AsyncExecution {
private static <T> Future<T> getFuture(Callable<T> callable) {
FutureTask<T> future = new FutureTask<>(callable);
- getExecutor().execute(future);
+ try {
+ getExecutor().execute(future);
+ } catch (RejectedExecutionException e) {
+ future.run();
+ }
return future;
}
@@ -161,7 +165,11 @@ public class AsyncExecution {
private FutureResult getFutureResult(Callable<Result> callable, Query query) {
FutureResult future = new FutureResult(callable, execution, query);
- getExecutor().execute(future);
+ try {
+ getExecutor().execute(future);
+ } catch (RejectedExecutionException e) {
+ future.run();
+ }
return future;
}