if (t instanceof CircuitBreakerException) {
throw (CircuitBreakerException) t.getCause();
} else if (t instanceof TimeoutException) {
throw new CircuitTimeoutException(t.getMessage(), t);
} else if (t instanceof RejectedExecutionException) {
throw new CircuitOverloadException(t.getMessage(), t);
}
throw new CircuitBreakerException(t);
}
}