summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/concurrent/UncheckedInterruptedException.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/concurrent/UncheckedInterruptedException.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/concurrent/UncheckedInterruptedException.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/concurrent/UncheckedInterruptedException.java b/vespajlib/src/main/java/com/yahoo/concurrent/UncheckedInterruptedException.java
new file mode 100644
index 00000000000..1f8f45bace9
--- /dev/null
+++ b/vespajlib/src/main/java/com/yahoo/concurrent/UncheckedInterruptedException.java
@@ -0,0 +1,27 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.concurrent;
+
+/**
+ * Wraps an {@link InterruptedException} with an unchecked exception.
+ *
+ * @author bjorncs
+ */
+public class UncheckedInterruptedException extends RuntimeException {
+
+ public UncheckedInterruptedException(String message, InterruptedException cause, boolean restoreInterruptFlag) {
+ super(message, cause);
+ if (restoreInterruptFlag) Thread.currentThread().interrupt();
+ }
+
+ public UncheckedInterruptedException(InterruptedException cause, boolean restoreInterruptFlags) {
+ this(cause.toString(), cause, restoreInterruptFlags);
+ }
+
+ public UncheckedInterruptedException(String message, boolean restoreInterruptFlag) { this(message, null, false); }
+
+ public UncheckedInterruptedException(String message, InterruptedException cause) { this(message, cause, false); }
+
+ public UncheckedInterruptedException(InterruptedException cause) { this(cause.toString(), cause, false); }
+
+ @Override public InterruptedException getCause() { return (InterruptedException) super.getCause(); }
+}