public boolean shouldRetry(Exception paramException, int paramInt) {
		if (paramInt > this.config.getMaxErrorRetry()) {
			log.warn("Max error retry is["+this.config.getMaxErrorRetry()+"]. Stop retry.");
			return false;
		}

		if ((paramException instanceof NoHttpResponseException)
				|| (paramException instanceof SocketException)
				|| (paramException instanceof SocketTimeoutException)) {
			log.debug("Retrying on "+paramException.getClass().getName()+":"+paramException.getMessage());
			return true;
		}

		if (paramException instanceof BCSServiceException) {
			BCSServiceException localBCSServiceException = (BCSServiceException) paramException;
			if ((localBCSServiceException.getBcsErrorCode() == 500)
					|| (localBCSServiceException.getBcsErrorCode() == 503)) {
				log.debug("Retrying on server response[" + localBCSServiceException.getBcsErrorCode() + "]");
				return true;
			}
		}
		log.warn("Should not retry.");
		return false;
	}