private InterruptedException findInterrupt(System.Exception throwable)
        {
            InterruptedException exception = ExceptionTools.findDeepException <InterruptedException>(throwable, typeof(InterruptedException));

            if (exception == null)
            {
                InterruptedIOException ioException = ExceptionTools.findDeepException <InterruptedIOException>(throwable, typeof(InterruptedIOException));

                if (ioException != null && (ioException.Message == null || !ioException.Message.Contains("timed out")))
                {
                    exception = new InterruptedException(ioException.Message);
                }
            }

            if (exception == null && java.lang.Thread.interrupted())
            {
                return(new InterruptedException());
            }

            return(exception);
        }