Code example for HttpContext

Methods: getAttribute

0
    } 
 
    public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {
        boolean retry;
 
        Boolean b = (Boolean) context.getAttribute(ExecutionContext.HTTP_REQ_SENT);
        boolean sent = (b != null && b.booleanValue());
 
        if(executionCount > maxRetries) {
            // Do not retry if over max retry count 
            retry = false;
        } else if (exceptionBlacklist.contains(exception.getClass())) {
            // immediately cancel retry if the error is blacklisted 
            retry = false;
        } else if (exceptionWhitelist.contains(exception.getClass())) {
            // immediately retry if error is whitelisted 
            retry = true;
        } else if (!sent) {
            // for most other errors, retry only if request hasn't been fully sent yet 
            retry = true;
        } else { 
            // resend all idempotent requests 
            HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST);
            String requestType = currentReq.getMethod();
            if(!requestType.equals("POST")) {
                retry = true;
            } else { 
                // otherwise do not retry