From d6dd94586f6dbdae816487349adbdaa5e1962f25 Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Tue, 12 Jan 2010 20:47:08 +0000 Subject: [PATCH] fix: ensure that an InterruptedExceptionUnchecked will lead to ExceptionStatus.INTERRUPTED rather than ExceptionStatus.EXCPETIONAL in getResult() SVN: 14259 --- .../cisd/common/concurrent/ConcurrencyUtilities.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 8498aa97338..f63d056e1a2 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 = -- GitLab