Skip to content

Commit 1490cf8

Browse files
Catch cancellation exceptions - Fix TestTolerantSearch (apache#3393)
Co-authored-by: David Smiley <dsmiley@apache.org>
1 parent fc65fa3 commit 1490cf8

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.Locale;
3131
import java.util.Map;
3232
import java.util.Objects;
33+
import java.util.concurrent.CancellationException;
3334
import java.util.concurrent.CompletableFuture;
3435
import java.util.concurrent.ExecutionException;
3536
import java.util.concurrent.ExecutorService;
@@ -521,7 +522,13 @@ public void onHeaders(Response response) {
521522
mdcCopyHelper.onBegin(null);
522523
log.debug("response processing success");
523524
future.complete(body);
524-
} catch (SolrClient.RemoteSolrException | SolrServerException e) {
525+
} catch (CancellationException e) {
526+
mdcCopyHelper.onBegin(null);
527+
log.debug("response processing cancelled", e);
528+
if (!future.isDone()) {
529+
future.cancel(true);
530+
}
531+
} catch (Throwable e) {
525532
mdcCopyHelper.onBegin(null);
526533
log.debug("response processing failed", e);
527534
future.completeExceptionally(e);

solr/solrj/src/java/org/apache/solr/common/util/ExecutorUtil.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.util.Map;
2525
import java.util.concurrent.BlockingQueue;
2626
import java.util.concurrent.Callable;
27+
import java.util.concurrent.CancellationException;
2728
import java.util.concurrent.ExecutionException;
2829
import java.util.concurrent.ExecutorService;
2930
import java.util.concurrent.Future;
@@ -378,6 +379,7 @@ public void execute(final Runnable command) {
378379
}
379380
try {
380381
command.run();
382+
} catch (CancellationException ignored) {
381383
} catch (Throwable t) {
382384
if (t instanceof OutOfMemoryError) {
383385
throw t;

0 commit comments

Comments
 (0)