1e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak/*
2e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak * Written by Doug Lea with assistance from members of JCP JSR-166
3e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak * Expert Group and released to the public domain, as explained at
4e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak * http://creativecommons.org/publicdomain/zero/1.0/
5e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak */
6e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak
7e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniakpackage java.util.concurrent;
8e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak
9e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak/**
10e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak * Exception thrown when an error or other exception is encountered
11e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak * in the course of completing a result or task.
12e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak *
13e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak * @since 1.8
14e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak * @author Doug Lea
15e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak */
16e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniakpublic class CompletionException extends RuntimeException {
17e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    private static final long serialVersionUID = 7830266012832686185L;
18e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak
19e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    /**
20e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * Constructs a {@code CompletionException} with no detail message.
21e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * The cause is not initialized, and may subsequently be
22e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * initialized by a call to {@link #initCause(Throwable) initCause}.
23e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     */
24e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    protected CompletionException() { }
25e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak
26e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    /**
27e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * Constructs a {@code CompletionException} with the specified detail
28e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * message. The cause is not initialized, and may subsequently be
29e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * initialized by a call to {@link #initCause(Throwable) initCause}.
30e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     *
31e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * @param message the detail message
32e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     */
33e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    protected CompletionException(String message) {
34e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak        super(message);
35e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    }
36e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak
37e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    /**
38e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * Constructs a {@code CompletionException} with the specified detail
39e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * message and cause.
40e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     *
41e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * @param  message the detail message
42e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * @param  cause the cause (which is saved for later retrieval by the
43e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     *         {@link #getCause()} method)
44e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     */
45e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    public CompletionException(String message, Throwable cause) {
46e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak        super(message, cause);
47e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    }
48e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak
49e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    /**
50e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * Constructs a {@code CompletionException} with the specified cause.
51e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * The detail message is set to {@code (cause == null ? null :
52e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * cause.toString())} (which typically contains the class and
53e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * detail message of {@code cause}).
54e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     *
55e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     * @param  cause the cause (which is saved for later retrieval by the
56e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     *         {@link #getCause()} method)
57e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak     */
58e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    public CompletionException(Throwable cause) {
59e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak        super(cause);
60e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak    }
61e8b323c7cb7d55be9a4df579231e44f04f53d766Przemyslaw Szczepaniak}
62