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 { 
				retry = false;