@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { // BWC: Versions before 2.x have no status on failure. In those cases we check the error message contents. boolean legacyRetry = entry.getResponseCode() == -1 && entry.getException().getMessage().contains("EsRejectedExecutionException"); if (legacyRetry || retry.retry(entry.getResponseCode())) { // Negative retry limit? Retry forever. if (retryLimit < 0 || entry.getNumberOfAttempts() <= retryLimit) { return collector.backoffAndRetry(retryTime, TimeUnit.MILLISECONDS); } else { return collector.pass("Document bulk write attempts [" + entry.getNumberOfAttempts() + "] exceeds configured automatic retry limit of [" + retryLimit + "]"); } } else { return collector.pass("Non retryable code [" + entry.getResponseCode() + "] encountered."); } } }
@Override public String convert(BulkWriteFailure entry) { return String.format( "Dropping failed bulk entry (response [%s] from server) after [%s] attempts due to error [%s]:%n" + "Entry Contents:%n%s", entry.getResponseCode(), entry.getNumberOfAttempts(), entry.getException().getMessage(), ((FastByteArrayInputStream) entry.getEntryContents()).bytes().toString() ); } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { assertEquals(401, entry.getResponseCode()); // Copy the bytes into a byte array and retry the byte array. byte[] copyDoc = copyDocumentBytes(entry); copyDoc[25] = (byte) (copyDoc[25] + 1); return collector.retry(copyDoc); } }
if (attemptCount == 1) { assertEquals(1, entry.getNumberOfAttempts()); assertEquals(401, entry.getResponseCode()); assertEquals(402, entry.getResponseCode()); } else if (attemptCount == 3) { assertEquals(3, entry.getNumberOfAttempts()); assertEquals(403, entry.getResponseCode()); } else if (attemptCount == 4) { assertEquals(1, entry.getNumberOfAttempts()); // New document should reset attempt count assertEquals(404, entry.getResponseCode());
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { // BWC: Versions before 2.x have no status on failure. In those cases we check the error message contents. boolean legacyRetry = entry.getResponseCode() == -1 && entry.getException().getMessage().contains("EsRejectedExecutionException"); if (legacyRetry || retry.retry(entry.getResponseCode())) { // Negative retry limit? Retry forever. if (retryLimit < 0 || entry.getNumberOfAttempts() <= retryLimit) { return collector.backoffAndRetry(retryTime, TimeUnit.MILLISECONDS); } else { return collector.pass("Document bulk write attempts [" + entry.getNumberOfAttempts() + "] exceeds configured automatic retry limit of [" + retryLimit + "]"); } } else { return collector.pass("Non retryable code [" + entry.getResponseCode() + "] encountered."); } } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { // BWC: Versions before 2.x have no status on failure. In those cases we check the error message contents. boolean legacyRetry = entry.getResponseCode() == -1 && entry.getException().getMessage().contains("EsRejectedExecutionException"); if (legacyRetry || retry.retry(entry.getResponseCode())) { // Negative retry limit? Retry forever. if (retryLimit < 0 || entry.getNumberOfAttempts() <= retryLimit) { return collector.backoffAndRetry(retryTime, TimeUnit.MILLISECONDS); } else { return collector.pass("Document bulk write attempts [" + entry.getNumberOfAttempts() + "] exceeds configured automatic retry limit of [" + retryLimit + "]"); } } else { return collector.pass("Non retryable code [" + entry.getResponseCode() + "] encountered."); } } }
@Override public HandlerResult onError(BulkWriteFailure entry, DelayableErrorCollector<byte[]> collector) throws Exception { // BWC: Versions before 2.x have no status on failure. In those cases we check the error message contents. boolean legacyRetry = entry.getResponseCode() == -1 && entry.getException().getMessage().contains("EsRejectedExecutionException"); if (legacyRetry || retry.retry(entry.getResponseCode())) { // Negative retry limit? Retry forever. if (retryLimit < 0 || entry.getNumberOfAttempts() <= retryLimit) { return collector.backoffAndRetry(retryTime, TimeUnit.MILLISECONDS); } else { return collector.pass("Document bulk write attempts [" + entry.getNumberOfAttempts() + "] exceeds configured automatic retry limit of [" + retryLimit + "]"); } } else { return collector.pass("Non retryable code [" + entry.getResponseCode() + "] encountered."); } } }
@Override public String convert(BulkWriteFailure entry) { return String.format( "Dropping failed bulk entry (response [%s] from server) after [%s] attempts due to error [%s]:%n" + "Entry Contents:%n%s", entry.getResponseCode(), entry.getNumberOfAttempts(), entry.getException().getMessage(), ((FastByteArrayInputStream) entry.getEntryContents()).bytes().toString() ); } }
@Override public String convert(BulkWriteFailure entry) { return String.format( "Dropping failed bulk entry (response [%s] from server) after [%s] attempts due to error [%s]:%n" + "Entry Contents:%n%s", entry.getResponseCode(), entry.getNumberOfAttempts(), entry.getException().getMessage(), ((FastByteArrayInputStream) entry.getEntryContents()).bytes().toString() ); } }
@Override public String convert(BulkWriteFailure entry) { return String.format( "Dropping failed bulk entry (response [%s] from server) after [%s] attempts due to error [%s]:%n" + "Entry Contents:%n%s", entry.getResponseCode(), entry.getNumberOfAttempts(), entry.getException().getMessage(), ((FastByteArrayInputStream) entry.getEntryContents()).bytes().toString() ); } }