diff --git a/common/source/java/ch/systemsx/cisd/common/concurrent/ConcurrencyUtilities.java b/common/source/java/ch/systemsx/cisd/common/concurrent/ConcurrencyUtilities.java index 8498aa973387d42655fd0c50a4e1e26efd1aae53..f63d056e1a244fbb391a14e7fda75829e1068339 100644 --- a/common/source/java/ch/systemsx/cisd/common/concurrent/ConcurrencyUtilities.java +++ b/common/source/java/ch/systemsx/cisd/common/concurrent/ConcurrencyUtilities.java @@ -373,6 +373,16 @@ public final class ConcurrencyUtilities } catch (ExecutionException ex) { final Throwable cause = ex.getCause(); + if (cause instanceof InterruptedExceptionUnchecked) + { + future.cancel(true); + if (logSettingsOrNull != null) + { + logSettingsOrNull.getLogger().log(logSettingsOrNull.getLogLevelForError(), + String.format("%s: interrupted.", logSettingsOrNull.getOperationName())); + } + return ExecutionResult.createInterrupted(); + } if (logSettingsOrNull != null) { final String message =