private static Observable<Long> handleRetryAttempt(Throwable t, int attemptNumber, RxRetryHandler retryPolicy) { Throwable cause = extractDocumentClientCause(t, attemptNumber); if (LOGGER.isDebugEnabled()) { if (cause instanceof DocumentClientException) { DocumentClientException ex = (DocumentClientException) cause; LOGGER.debug("Handling Failure Attempt [{}], StatusCode [{}], SubStatusCode," + " Error: [{}] ", attemptNumber, ex.getStatusCode(), ex.getSubStatusCode(), ex.getError(), ex); } else { LOGGER.debug("Handling Failure Attempt [{}], req [{}]", attemptNumber, cause); } } try { return retryPolicy.handleRetryAttempt(cause, attemptNumber); } catch (Exception e) { return Observable.error(e); } } }