private Response remoteCall(final String path, final String configName)
        throws ConfigurationException, InterruptedException
    {
        int i = 0;
        while (true) {
            try {
                return remote.getRemoteConfiguration(path, configName);
            } catch (final HttpConfigurationException nfe) {
                // don't retry if we have an explicit failure from the HTTP server
                throw nfe;
            } catch (final ConfigurationException e) {
                LOG.debug("HTTP client call failed, retrying");
                if (i == retries) {
                    throw e;
                } else {
                    Thread.sleep((long) Math.pow(2, i) * 1000L);
                }
                i++;
            }
        }
    }
private Response remoteCall(final String path, final String configName)
        throws ConfigurationException, InterruptedException
    {
        int i = 0;
        while (true) {
            try {
                return remote.getRemoteConfiguration(path, configName);
            } catch (final HttpConfigurationException nfe) {
                
                throw nfe;
            } catch (final ConfigurationException e) {
                LOG.debug("HTTP client call failed, retrying");
                if (i == retries) {
                    throw e;
                } else {
                    Thread.sleep((long) Math.pow(2, i) * 1000L);
                }
                i++;
            }
        }
    }
private Response remoteCall ( final String path , final String configName ) throws ConfigurationException , InterruptedException { int i = 0 ; while ( true ) { try { return remote . getRemoteConfiguration ( path , configName ) ; } catch ( final HttpConfigurationException nfe ) { // don't retry if we have an explicit failure from the HTTP server throw nfe ; } catch ( final ConfigurationException e ) { LOG . debug ( "HTTP client call failed, retrying" ) ; if ( i == retries ) { throw e ; } else { Thread . sleep ( ( long ) Math . pow ( 2 , i ) * 1000L ) ; } i ++ ; } } }
Perform exponential backoff/retry of acquiring a data file from an HTTP source.

@param configName the configuration file name
@return the HTTP response
@throws ConfigurationException if the data cannot be acquired
@throws InterruptedException usually if the application is shutting down
Perform exponential backoff / retry of acquiring a data file from an HTTP source .