src/main/java/com/microsoft/azure/datalake/store/retrypolicies/ExponentialBackoffPolicy.java [61:94]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                 || httpResponseCode == 408
                                 || httpResponseCode == 429
                                 || httpResponseCode == 401) {
            if (retryCount < maxRetries) {
                int timeSpent = (int)((System.nanoTime() - lastAttemptStartTime) / 1000000);
                wait(exponentialRetryInterval - timeSpent);
                exponentialRetryInterval *= exponentialFactor;
                retryCount++;
                lastAttemptStartTime = System.nanoTime();
                return true;
            } else {
                return false;  // max # of retries exhausted
            }
        }

        // these are not errors - this method should never have been called with this
        if (httpResponseCode >= 100 && httpResponseCode <300)
        {
            return false;
        }

        // Dont know what happened - we should never get here
        return false;
    }

    private void wait(int milliseconds) {
        if (milliseconds <= 0) {
            return;
        }

        try {
            Thread.sleep(milliseconds);
        } catch (InterruptedException ex) {
            Thread.currentThread().interrupt();   // http://www.ibm.com/developerworks/library/j-jtp05236/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



src/main/java/com/microsoft/azure/datalake/store/retrypolicies/ExponentialBackoffPolicyforMSI.java [60:93]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                                 || httpResponseCode == 408
                                 || httpResponseCode == 429
                                 || httpResponseCode == 401) {
            if (retryCount < maxRetries) {
                int timeSpent = (int)((System.nanoTime() - lastAttemptStartTime) / 1000000);
                wait(exponentialRetryInterval - timeSpent);
                exponentialRetryInterval *= exponentialFactor;
                retryCount++;
                lastAttemptStartTime = System.nanoTime();
                return true;
            } else {
                return false;  // max # of retries exhausted
            }
        }

        // these are not errors - this method should never have been called with this
        if (httpResponseCode >= 100 && httpResponseCode <300)
        {
            return false;
        }

        // Dont know what happened - we should never get here
        return false;
    }

    private void wait(int milliseconds) {
        if (milliseconds <= 0) {
            return;
        }

        try {
            Thread.sleep(milliseconds);
        } catch (InterruptedException ex) {
            Thread.currentThread().interrupt();   // http://www.ibm.com/developerworks/library/j-jtp05236/
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



