@Override
	public GetRecordsResult getRecords(String shardIterator, int maxRecordsToGet) throws InterruptedException {
		final GetRecordsRequest getRecordsRequest = new GetRecordsRequest();
		getRecordsRequest.setShardIterator(shardIterator);
		getRecordsRequest.setLimit(maxRecordsToGet);

		GetRecordsResult getRecordsResult = null;

		int retryCount = 0;
		while (retryCount <= getRecordsMaxRetries && getRecordsResult == null) {
			try {
				getRecordsResult = kinesisClient.getRecords(getRecordsRequest);
			} catch (SdkClientException ex) {
				if (isRecoverableSdkClientException(ex)) {
					long backoffMillis = fullJitterBackoff(
						getRecordsBaseBackoffMillis, getRecordsMaxBackoffMillis, getRecordsExpConstant, retryCount++);
					LOG.warn("Got recoverable SdkClientException. Backing off for "
						+ backoffMillis + " millis (" + ex.getClass().getName() + ": " + ex.getMessage() + ")");
					Thread.sleep(backoffMillis);
				} else {
					throw ex;
				}
			}
		}

		if (getRecordsResult == null) {
			throw new RuntimeException("Retries exceeded for getRecords operation - all " + getRecordsMaxRetries +
				" retry attempts failed.");
		}

		return getRecordsResult;
	}
@ Override public GetRecordsResult getRecords ( String shardIterator , int maxRecordsToGet ) throws InterruptedException { final GetRecordsRequest getRecordsRequest = new GetRecordsRequest ( ) ; getRecordsRequest . setShardIterator ( shardIterator ) ; getRecordsRequest . setLimit ( maxRecordsToGet ) ; GetRecordsResult getRecordsResult = null ; int retryCount = 0 ; while ( retryCount <= getRecordsMaxRetries && getRecordsResult == null ) { try { getRecordsResult = kinesisClient . getRecords ( getRecordsRequest ) ; } catch ( SdkClientException ex ) { if ( isRecoverableSdkClientException ( ex ) ) { long backoffMillis = fullJitterBackoff ( getRecordsBaseBackoffMillis , getRecordsMaxBackoffMillis , getRecordsExpConstant , retryCount ++ ) ; LOG . warn ( "Got recoverable SdkClientException. Backing off for " + backoffMillis + " millis (" + ex . getClass ( ) . getName ( ) + ": " + ex . getMessage ( ) + ")" ) ; Thread . sleep ( backoffMillis ) ; } else { throw ex ; } } } if ( getRecordsResult == null ) { throw new RuntimeException ( "Retries exceeded for getRecords operation - all " + getRecordsMaxRetries + " retry attempts failed." ) ; } return getRecordsResult ; }
{@inheritDoc}