aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/yolean/UncheckedInterruptedException.java
blob: 064c6a9723d42009e1b06e0c758b3e965ef7f2a4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.yolean;

/**
 * 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, restoreInterruptFlag); }

    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(); }
}